(function (config) {
    var ba = navigator.userAgent.toLowerCase(), ca = window, fa = document, ga = fa.documentElement;

    function ia(a) {
        return -1 !== ba.indexOf(a)
    }

    var na = /([a-z0-9]*\d+[a-z0-9]*)/;

    function oa() {
        var a = pa;
        if (!a) return null;
        var a = a.toLowerCase(), b = null;
        if (b = a.match(/angle \((.*)\)/)) a = b[1], a = a.replace(/\s*direct3d.*$/, "");
        a = a.replace(/\s*\([^\)]*wddm[^\)]*\)/, "");
        if (0 <= a.indexOf("intel")) {
            b = ["Intel"];
            0 <= a.indexOf("mobile") && b.push("Mobile");
            (0 <= a.indexOf("gma") || 0 <= a.indexOf("graphics media accelerator")) && b.push("GMA");
            if (0 <= a.indexOf("haswell")) b.push("Haswell"); else if (0 <= a.indexOf("ivy")) b.push("HD 4000"); else if (0 <= a.indexOf("sandy")) b.push("HD 3000"); else if (0 <= a.indexOf("ironlake")) b.push("HD");
            else {
                0 <= a.indexOf("hd") && b.push("HD");
                var c = a.match(na);
                c && b.push(c[1].toUpperCase())
            }
            return b = b.join(" ")
        }
        return 0 <= a.indexOf("nvidia") || 0 <= a.indexOf("quadro") || 0 <= a.indexOf("geforce") || 0 <= a.indexOf("nvs") ? (b = ["nVidia"], 0 <= a.indexOf("geforce") && b.push("geForce"), 0 <= a.indexOf("quadro") && b.push("Quadro"), 0 <= a.indexOf("nvs") && b.push("NVS"), a.match(/\bion\b/) && b.push("ION"), a.match(/gtx\b/) ? b.push("GTX") : a.match(/gts\b/) ? b.push("GTS") : a.match(/gt\b/) ? b.push("GT") : a.match(/gs\b/) ? b.push("GS") : a.match(/ge\b/) ?
            b.push("GE") : a.match(/fx\b/) && b.push("FX"), (c = a.match(na)) && b.push(c[1].toUpperCase().replace("GS", "")), 0 <= a.indexOf("titan") ? b.push("TITAN") : 0 <= a.indexOf("ti") && b.push("Ti"), b = b.join(" ")) : 0 <= a.indexOf("amd") || 0 <= a.indexOf("ati") || 0 <= a.indexOf("radeon") || 0 <= a.indexOf("firegl") || 0 <= a.indexOf("firepro") ? (b = ["AMD"], 0 <= a.indexOf("mobil") && b.push("Mobility"), c = a.indexOf("radeon"), 0 <= c && b.push("Radeon"), 0 <= a.indexOf("firepro") ? b.push("FirePro") : 0 <= a.indexOf("firegl") && b.push("FireGL"), 0 <= a.indexOf("hd") &&
        b.push("HD"), 0 <= c && (a = a.substring(c)), (c = a.match(na)) && b.push(c[1].toUpperCase().replace("HD", "")), b = b.join(" ")) : a.substring(0, 100)
    }

    var qa = "microsoft basic render driver;vmware svga 3d;Intel 965GM;Intel B43;Intel G41;Intel G45;Intel G965;Intel GMA 3600;Intel Mobile 4;Intel Mobile 45;Intel Mobile 965".split(";"),
        sa = "ActiveXObject" in ca,
        va = "devicePixelRatio" in ca && 1 < ca.devicePixelRatio || sa && "matchMedia" in ca && ca.matchMedia("(min-resolution:144dpi)") && ca.matchMedia("(min-resolution:144dpi)").matches,
        wa = ia("windows nt"), xa = -1 !== ba.search(/windows nt [1-5]\./), ya = -1 !== ba.search(/windows nt 5\.[12]/),
        za = xa && !ya;
    ia("windows nt 10");
    var Da = ia("windows phone"), Ea = ia("macintosh"), Fa = ia("Mb2345Browser"), Ga = ia("ipad;") || ia("ipad "),
        Ha = Ga && va, Ka = ia("ipod touch;"), La = ia("iphone;") || ia("iphone "), Ma = La || Ga || Ka,
        Na = Ma && -1 !== ba.search(/ os [456]_/);
    Ma && ba.search(/ os [4-8]_/);
    Ma && ba.search(/ os [78]_/);
    Ma && ia("os 8_");
    var Qa = Ma && ia("os 10_"), Ra = ia("android"), Sa = -1 !== ba.search(/android [123]/);
    ia("android 4");
    Ra && -1 === ba.search(/android [1-4]/) || ba.search(/android 4.4/);
    var Ta = Ra ? "android" : Ma ? "ios" : wa ? "windows" : Ea ? "mac" : "other", Ua = sa && !ca.XMLHttpRequest,
        Va = sa && !fa.querySelector, Wa = sa && !fa.addEventListener, Xa = sa && ia("msie 9"),
        Ya = sa && ia("msie 10"), Za = sa && ia("rv:11"), $a = Wa || Xa, ab = ia("edge"), bb = ia("qtweb"),
        cb = ia("ucbrowser"), db = ia("alipay") || Ra && cb, eb = ia("miuibrowser"), fb = ia("micromessenger"),
        gb = ia("mqqbrowser"), hb = ia("baidubrowser"),
        chrome = (ia("chrome") || ia("crios")) && !fb && !hb && !gb && !ab && !eb, ib = chrome && ia("chromium"),
        jb = chrome && !ib && 30 < parseInt(ba.split("chrome/")[1]),
        kb = ia("firefox"), lb = kb && 27 < parseInt(ba.split("firefox/")[1]),
        mb = (Ea || Ma) && ia("safari") && ia("version/"), nb = Ea && mb && 7 < parseInt(ba.split("version/")[1]),
        ob = Ma && ia("aliapp"), pb = Ma && (!gb && !cb && !fb && !chrome && !kb && !mb || ob && !cb),
        qb = Ra || Ma || Da || ia("mobile"), rb = "ontouchstart" in fa,
        sb = ca.navigator && ca.navigator.msPointerEnabled && !!ca.navigator.msMaxTouchPoints,
        tb = ca.navigator && !!ca.navigator.maxTouchPoints, ub = !rb && (tb || sb), vb = rb || ub, wb = function () {
            if (!qb) return ca.devicePixelRatio || 1;
            var a = document.getElementsByTagName("meta");
            if (window.parent && window.parent !== window) try {
                if (window.parent.location.origin === window.location.origin) a = window.parent.document.getElementsByTagName("meta"); else return 1
            } catch (b) {
                return 1
            }
            for (var c = a.length - 1; 0 <= c; c -= 1) if ("viewport" === a[c].name) {
                var c = a[c].content, d;
                -1 !== c.indexOf("initial-scale") && (d = parseFloat(c.split("initial-scale=")[1]));
                a = -1 !== c.indexOf("minimum-scale") ? parseFloat(c.split("minimum-scale=")[1]) : 0;
                c = -1 !== c.indexOf("maximum-scale") ? parseFloat(c.split("maximum-scale=")[1]) : Infinity;
                if (d) {
                    if (c >= a) return d > c ? c : d < a ? a : d
                } else if (c >= a) return 1 <= a ? 1 : Math.min(c, 1);
                console && console.log && console.log("viewport\u53c2\u6570\u4e0d\u5408\u6cd5");
                return null
            }
        }(), xb = va && (!qb || !!wb && 1 <= wb), yb = sa && "transition" in ga.style,
        zb = !!fa.createElementNS && !!fa.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGRect,
        Ab = fa.createElement("canvas"), Bb = !(!Ab || !Ab.getContext), Cb = window.URL || window.webkitURL,
        Db = !sa && !ab && !(cb && Ra) && window.Worker && Cb && Cb.createObjectURL && window.Blob, Eb = "", pa = "",
        Fb = 0,
        Gb = window.forceWebGL ? {alpha: !0, antialias: !0, depth: !0} : {
            alpha: !0,
            antialias: !0,
            depth: !0,
            failIfMajorPerformanceCaveat: !0,
            preserveDrawingBuffer: !0,
            stencil: !0
        }, Jb = function () {
            if (!window.forceWebGL && (!Bb || !Db || pb && ob && !cb)) return !1;
            for (var a = ["webgl", "experimental-webgl", "moz-webgl"], b = null, c = 0; c < a.length; c += 1) {
                try {
                    b = Ab.getContext(a[c], Gb)
                } catch (d) {
                }
                if (b) {
                    if (b.drawingBufferWidth !== Ab.width || b.drawingBufferHeight !== Ab.height) break;
                    if (window.forceWebGL) return Eb = a[c], Fb = Infinity, !0;
                    if (!b.getShaderPrecisionFormat ||
                        !b.getParameter || !b.getExtension) break;
                    Fb = b.getParameter(b.MAX_RENDERBUFFER_SIZE);
                    var e = b.getParameter(b.MAX_VIEWPORT_DIMS);
                    if (!e) break;
                    Fb = Math.min(Fb, e[0], e[1]);
                    mb && "mac" === Ta && (Fb = Math.min(Fb, 4096));
                    e = Math.max(screen.width, screen.height);
                    xb && (e *= Math.min(2, window.devicePixelRatio || 1));
                    if (e > Fb) break;
                    if (23 > b.getShaderPrecisionFormat(35632, 36338).precision || 23 > b.getShaderPrecisionFormat(35633, 36338).precision) break;
                    pa = b.getExtension("WEBGL_debug_renderer_info") ? b.getParameter(37446) : null;
                    if ((b = oa()) &&
                        -1 !== qa.indexOf(b)) break;
                    Eb = a[c];
                    return !0
                }
            }
            return !1
        }(), Kb = Jb && (jb || lb || nb) && ("mac" === Ta || "windows" === Ta) && !qb,
        Lb = !Bb || bb || Da || qb && kb || Xa || Na || Ha || Ka || Sa || ia("gt-n710") || za, Mb = !Lb && !Kb,
        Nb = Kb ? "vw" : Lb ? "d" : Mb ? "dv" : "v", Ob = ia("webkit"),
        Pb = "WebKitCSSMatrix" in ca && "m11" in new window.WebKitCSSMatrix, Qb = "MozPerspective" in ga.style,
        Rb = "OTransition" in ga.style, Sb = yb || Pb || Qb || Rb, Tb = void 0 !== config[8] ? config[8] : !0,
        Ub = void 0 !== config[9] ? config[9] : !0, Vb = void 0 !== config[10] ? config[10] : !0,
        Wb = void 0 !== config[11] ? config[11] :
            !0, Xb = void 0 !== config[12] ? config[12] : null, Yb = !zb && qb && Bb, Zb = !0;
    try {
        if ("undefined" === typeof ca.localStorage) Zb = !1; else {
            var $b = (new Date).getTime() + "";
            ca.localStorage.setItem("_test", $b);
            ca.localStorage.getItem("_test") !== $b && (Zb = !1);
            ca.localStorage.removeItem("_test")
        }
    } catch (ac) {
        Zb = !1
    }
    var bc = parseInt(ba.split("chrome/")[1]), cc = Tb && Bb;
    config.l = {
        Oqa: Ga,
        Pqa: La,
        size: La ? 100 : Ra ? 200 : 500,
        Sy: Ea,
        Yya: wa,
        gD: Ma,
        ZDa: Qa,
        Ql: Ra,
        jla: Sa,
        h3: db,
        dz: Ta,
        CH: hb,
        Yua: gb,
        fE: mb,
        I9: fb,
        js: sa,
        ti: Ua,
        Zu: Va,
        y4: Xa,
        x4: Ya,
        ye: Wa,
        A4: $a,
        Sqa: Za,
        uoa: ab,
        Vqa: sa && !Za,
        Nsa: Fa,
        ss: Zb,
        Gi: cc && Zb && Wb && !qb && chrome,
        Gf: Xb,
        geolocation: qb || sa && !Wa || ab,
        nya: cb,
        VK: cb && !chrome,
        chrome: chrome,
        G2: !0,
        GQ: kb,
        ba: qb,
        Zsa: qb && Ob,
        U5: qb && Pb,
        Ysa: qb && ca.opera,
        Mc: va,
        dL: wb,
        ja: xb,
        Ff: vb,
        W5: sb,
        gT: tb,
        V6: ub,
        xma: chrome && 57 <= bc,
        yma: !qb && chrome && 64 <= bc,
        G9: Ob,
        Tqa: yb,
        H9: Pb,
        ipa: Qb,
        Sta: Rb,
        xH: Sb,
        Jo: zb,
        Xk: Bb,
        kS: Db,
        Jz: Vb,
        Af: Kb,
        D9: Eb,
        E9: Gb,
        wR: pa,
        Lsa: Fb,
        yza: !1,
        ou: Tb && !Lb,
        p1: Tb ? Nb : "d",
        L1: Tb ? Jb : !1,
        HK: cc,
        Eq: Tb && Jb,
        lEa: Tb && (!Lb || Jb),
        aq: Ub && !!ca.WebSocket && !hb,
        YEa: Yb,
        aua: Bb || Yb ? "c" : "d"
    };
    var dc = config;
    config = void 0;
    var ec = {
        overlay: ["style"],
        "AMap.IndoorMap": ["AMap.CustomLayer", "cvector"],
        "AMap.IndoorMap3D": ["Map3D"],
        "AMap.MarkerList": ["AMap.TplUtils"],
        Map3D: ["vectorlayer", "wgl", "AMap.CustomLayer", "rbush"],
        "AMap.Heatmap": ["AMap.CustomLayer"],
        "AMap.DistrictLayer": ["MVT"],
        vectorForeign: ["gridmap", "MVT"],
        "AMap.GltfLoader": ["AMap.CustomLayer", "Map3D"],
        "AMap.LabelsLayer": ["rbush", "promise"]
    };
    window.AMap ? (window.AMap.version = "1562318148152", window.AMap.ZK = {
        XL: function (a) {
            a(dc)
        }
    }) : window.AMap = {
        version: "1562318148152", ZK: {
            XL: function (a) {
                a(dc)
            }
        }
    };
    dc.Cj = "1562318148152";
    dc.zu = ec;
    dc.CJ = "raster";
    for (var fc = document.head || document.getElementsByTagName("head")[0], gc = '.vml{behavior:url(#default#VML);display:inline-block;position:absolute}.amap-custom{top:0;left:0;position:absolute}.amap-container img{max-width:none!important;max-height:none!important}.amap-container{touch-action:none;position:relative;overflow:hidden;background:#fcf9f2 url();-ms-touch-action:none}.amap-drags,.amap-layers{width:100%;height:100%;position:absolute;overflow:hidden}.amap-layers canvas{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.amap-layer img{pointer-events:none}.amap-e,.amap-maps{width:100%;height:100%}.amap-maps,.amap-e,.amap-layers,.amap-tile,.amap-tile-container{position:absolute;left:0;top:0;overflow:hidden}.amap-context{position:absolute;left:0;top:0}.amap-overlays,.amap-markers,.amap-marker{position:absolute;left:0;top:0}.amap-layers{z-index:0}.amap-overlays{z-index:110;cursor:default}.amap-markers{z-index:120}.amap-controls{z-index:150}.amap-copyright{position:absolute;display:block!important;left:77px;height:16px;bottom:0;padding-bottom:3px;font-size:11px;font-family:Arial,sans-serif;z-index:160}.amap-logo{position:absolute;bottom:1px;left:1px;z-index:160;height:20px}.amap-logo img{width:73px!important;height:20px!important;border:0;vertical-align:baseline!important}.amap-icon{position:relative;z-index:1}.amap-icon img{position:absolute;z-index:-1}.amap-marker-label{position:absolute;z-index:2;border:1px solid blue;background-color:white;white-space:nowrap;cursor:default;padding:3px;font-size:12px;line-height:14px}.amap-info{position:absolute;left:0;z-index:140;width:320px}.amap-menu{position:absolute;z-index:140;_width:100px}.amap-info-close{position:absolute;right:5px;_right:12px;+right:11px;top:5px;_top:2px;+top:2px;color:#c3c3c3;text-decoration:none;font:bold 16px/14px Tahoma,Verdana,sans-serif;width:14px;height:14px}.amap-info-outer,.amap-menu-outer{box-shadow:0 1px 2px rgba(0,0,0,0.1);background:none repeat scroll 0 0 white;border-radius:2px;padding:1px;text-align:left}.amap-menu-outer:hover{box-shadow:0 1px 2px rgba(0,0,0,0.3)}.amap-info-contentContainer:hover .amap-info-outer{box-shadow:0 1px 2px rgba(0,0,0,0.3)}.amap-info-content{position:relative;background:#fff;padding:10px 18px 10px 10px;line-height:1.4;overflow:auto}.amap-marker-content{position:relative}.amap-info{_width:320px}.amap-menu{_width:100px}.amap-info-sharp-old{overflow:hidden;position:absolute;background-image:url(http://webapi.amap.com/images/arrows.png)}.bottom-center .amap-info-sharp-old{height:12px;margin:0 auto;width:20px;background-position:center 12px;top:100%;margin-top:-9px;left:50%;margin-left:-10px}.bottom-left .amap-info-sharp-old{height:12px;width:13px;background-position:-16px -46px;top:100%;margin-top:-9px}.bottom-right .amap-info-sharp-old{height:12px;width:13px;top:-1px;background-position:-56px -46px;left:100%;margin-left:-13px;top:100%;margin-top:-9px}.middle-left .amap-info-sharp-old{height:20px;width:12px;background-position:left;top:50%;margin-top:-10px;margin-left:-11px}.center .amap-info-sharp-old{display:none}.middle-right .amap-info-sharp-old{height:20px;margin-right:0;width:12px;background-position:right;left:100%;margin-left:-9px;top:50%;margin-top:-10px}.top-center .amap-info-sharp-old{height:12px;margin:0 auto;width:20px;background-position:top;top:0;margin-top:-3px;left:50%;margin-left:-10px}.top-left .amap-info-sharp-old{height:12px;width:13px;background-position:-16px -3px;top:0;margin-top:-3px}.top-right .amap-info-sharp-old{height:12px;width:13px;background-position:-56px -3px;left:100%;margin-left:-13px;top:0;margin-top:-3px}.amap-info-sharp{position:absolute}.bottom-center .amap-info-sharp{bottom:0;left:50%;margin-left:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #fff}.bottom-center .amap-info-sharp:after{position:absolute;content:"";margin-left:-8px;margin-top:-7px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid rgba(0,0,0,0.3);filter:blur(2px);z-index:-1}.amap-info-contentContainer:hover.bottom-center .amap-info-sharp:after{border-top:8px solid rgba(0,0,0,0.5)}.bottom-left .amap-info-sharp{border-color:transparent #fff;border-width:0 0 10px 10px;border-style:solid}.bottom-left .amap-info-sharp:after{position:absolute;content:"";margin-left:-10px;border-color:transparent rgba(0,0,0,0.3);border-width:0 0 10px 10px;border-style:solid;filter:blur(1px);z-index:-1}.amap-info-contentContainer:hover.bottom-left .amap-info-sharp:after{border-color:transparent rgba(0,0,0,0.5)}.bottom-left .amap-info-content{border-radius:2px 2px 2px 0}.bottom-right .amap-info-sharp{right:0;border-top:10px solid #fff;border-left:10px solid transparent}.bottom-right .amap-info-sharp:after{position:absolute;margin-top:-9px;margin-left:-10px;content:"";border-top:10px solid rgba(0,0,0,0.3);border-left:10px solid transparent;filter:blur(1px);z-index:-1}.amap-info-contentContainer:hover.bottom-right .amap-info-sharp:after{border-top:10px solid rgba(0,0,0,0.5)}.bottom-right .amap-info-content{border-radius:2px 2px 0 2px}.top-center .amap-info-sharp{top:0;left:50%;margin-left:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #fff}.top-center .amap-info-sharp:after{position:absolute;content:"";margin-top:0;margin-left:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(0,0,0,0.3);filter:blur(1px);z-index:-1}.top-left .amap-info-sharp{left:0;top:0;border-bottom:10px solid #fff;border-right:10px solid transparent}.top-left .amap-info-sharp:after{position:absolute;content:"";margin-top:0;margin-left:0;border-bottom:10px solid rgba(0,0,0,0.3);border-right:10px solid transparent;filter:blur(1px);z-index:-1}.top-right .amap-info-sharp{right:0;top:0;border-bottom:10px solid #fff;border-left:10px solid transparent}.top-right .amap-info-sharp:after{position:absolute;content:"";margin-top:0;margin-left:-10px;border-bottom:10px solid rgba(0,0,0,0.3);border-left:10px solid transparent;filter:blur(1px);z-index:-1}.middle-right .amap-info-sharp{right:0;top:50%;margin-top:-8px;border-top:8px solid transparent;border-left:8px solid #fff;border-bottom:8px solid transparent}.middle-right .amap-info-sharp:after{position:absolute;content:"";margin-top:-8px;margin-left:-8px;border-top:8px solid transparent;border-left:8px solid rgba(0,0,0,0.3);border-bottom:8px solid transparent;filter:blur(1px);z-index:-1}.amap-info-contentContainer:hover.middle-right .amap-info-sharp:after{border-left:8px solid rgba(0,0,0,0.5)}.middle-left .amap-info-sharp{left:0;top:50%;margin-top:-8px;border-top:8px solid transparent;border-right:8px solid #fff;border-bottom:8px solid transparent}.middle-left .amap-info-sharp:after{position:absolute;content:"";margin-top:-8px;margin-left:0;border-top:8px solid transparent;border-right:8px solid rgba(0,0,0,0.3);border-bottom:8px solid transparent;filter:blur(1px);z-index:-1}.amap-info-contentContainer:hover.middle-left .amap-info-sharp:after{border-right:8px solid rgba(0,0,0,0.5)}.amap-info-contentContainer.top-left,.amap-info-contentContainer.top-center,.amap-info-contentContainer.top-right{padding-top:8px}.amap-info-contentContainer.bottom-left,.amap-info-contentContainer.bottom-center,.amap-info-contentContainer.bottom-right{padding-bottom:8px}.amap-info-contentContainer.middle-right{padding-right:8px}.amap-info-contentContainer.middle-left{padding-left:8px}.amap-menu-outer{margin:0;padding:0;list-style-type:none}ul.amap-menu-outer li{cursor:pointer;height:35px;line-height:35px;word-break:break-all;padding:0 10px;font-size:12px;white-space:nowrap}ul.amap-menu-outer li a{text-decoration:none;font-size:13px;margin:0 5px;color:#000;padding:5px 5px}ul.amap-menu-outer li:hover{background-color:#f3f3ee}.amap-overlay-text-container{display:block;width:auto;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff;padding:2px 3px;border:1px solid #ccc;border-radius:3px}.amap-overlay-text-container.amap-overlay-text-empty{display:none}.amap-info-content-ie8{border:1px solid #9c9c9c}'.replace(/url\((['"]?)(?:\.\.\/)+/g, "url($1" +
        dc[2].split(",")[0] + "/"), hc = null, ic = 0, jc = fc.childNodes.length; ic < jc; ic++) if (1 === fc.childNodes[ic].nodeType) {
        hc = fc.childNodes[ic];
        break
    }
    if (gc) if (fc) {
        var kc = document.createElement("style");
        kc.setAttribute("type", "text/css");
        kc.setAttribute("class", "AMap.style");
        kc.styleSheet ? kc.styleSheet.cssText = gc : kc.innerHTML = gc;
        hc ? fc.insertBefore(kc, hc) : fc.appendChild(kc)
    } else document.write("<style type='text/css'>" + gc + "</style>");
    var g = g || {Ba: {Be: 0, Pq: [], zj: {}}}, z = {o: {}, control: {}, w: {}};
    g.JCa = function (a) {
        var b = Function;
        return function () {
            return (new b("return " + a))()
        }
    }();
    g.CLASS_NAME = "AMap";
    g.c = g.BuryPoint = {};
    g.c.add = g.BuryPoint.add = function (a, b, c) {
        a.L4 || a.D || !(a = a.CLASS_NAME) || (a = a.replace("AMap.", ""), g.bA.Yo(a, b, c))
    };
    var lc = {lang: 1, baseRender: 1, overlayRender: 1, viewMode: 1};
    g.c.xa = g.BuryPoint.addOptions = function (a, b) {
        if (!a.Uta) if (b && (b.innerLayer || b.innerOverlay)) a.L4 = !0; else {
            a.Uta = !0;
            var c = a.CLASS_NAME;
            if (c) {
                c = c.replace("AMap.", "");
                g.bA.Yo(c);
                b = b || {};
                for (var d in b) b.hasOwnProperty(d) && ("Map" === c && d in lc ? g.bA.Yo(c, d, b[d]) : g.bA.Yo(c, d))
            }
        }
    };
    g.aa = function () {
    };
    g.aa.extend = g.aa.extend = function (a) {
        function b() {
        }

        function c() {
            var a = this.initialize || this.r;
            a && a.apply(this, arguments);
            if (!d && this.Fi) {
                a = document.createElement("style");
                a.setAttribute("type", "text/css");
                this.CLASS_NAME && a.setAttribute("class", this.CLASS_NAME);
                this.Fi = this.Fi.replace(/url\((['"]?)(?:\.\.\/)*/g, "url($1" + g.A.yb + "/");
                a.styleSheet ? a.styleSheet.cssText = this.Fi : a.innerHTML = this.Fi;
                for (var b = document.head || document.getElementsByTagName("head")[0], c = null, e = 0, f = b.childNodes.length; e < f; e++) if (1 ===
                    b.childNodes[e].nodeType) {
                    c = b.childNodes[e];
                    break
                }
                c ? b.insertBefore(a, c) : b.appendChild(a)
            }
            d = !0
        }

        var d = !1;
        b.prototype = this.prototype;
        var e = new b;
        e.constructor = c;
        c.prototype = e;
        c.prototype.wh = c.prototype["super"] = function (a) {
            return a.callee.la.apply(this, a)
        };
        for (var f in this) this.hasOwnProperty(f) && "prototype" !== f && (c[f] = this[f]);
        a.w8 && (g.extend(c, a.w8), a.w8 = null);
        a.ka && (g.extend.apply(null, [e].concat(a.ka)), a.ka = null);
        a.B && e.B && (a.B = g.extend({}, e.B, a.B));
        var h = e.constructor.rra, k = {};
        if (void 0 !== h) for (f in h) h.hasOwnProperty(f) &&
        (k[h[f]] = f);
        for (f in a) if (Object.prototype.hasOwnProperty.call(a, f)) {
            var l = f, m = f;
            h && k[f] && (m = k[f]);
            "function" === typeof a[l] && "function" === typeof e[m] && (a[l].la = e[m])
        }
        g.extend(e, a);
        a.toString && (e.toString = a.toString);
        c.Uc = this.prototype;
        return c
    };
    g.aa.zb = g.aa.include = function (a) {
        g.extend(this.prototype, a)
    };
    g.extend = function (a) {
        var b = Array.prototype.slice.call(arguments, 1), c, d, e, f;
        d = 0;
        for (e = b.length; d < e; d += 1) if (f = b[d] || {}, Object.assign) Object.assign(a, f); else for (c in f) Object.prototype.hasOwnProperty.call(f, c) && (a[c] = f[c]);
        return a
    };
    g.aa.Ob = function (a) {
        for (var b in a) if (a.hasOwnProperty(b)) {
            var c = a[b];
            if ("string" === typeof c) this.prototype[b] && (this.prototype[c] = this.prototype[b]); else for (var d = 0, e = c.length; d < e; d++) this.prototype[b] && (this.prototype[c[d]] = this.prototype[b])
        }
    };
    g.bA = {
        zj: {}, getKey: function (a, b) {
            a = a || "";
            return void 0 !== b && a ? a + "@" + b : a
        }, Yo: function (a, b, c) {
            this.zj[a] || (this.zj[a] = {});
            b = this.getKey(b, c);
            void 0 == this.zj[a][b] && (this.zj[a][b] = 0)
        }, send: function () {
            var a = [], b;
            for (b in this.zj) if (this.zj.hasOwnProperty(b)) {
                var c = this.zj[b], d = [], e;
                for (e in c) c.hasOwnProperty(e) && 0 == c[e] && (d.push(e), c[e] = 1);
                d.length && a.push(b + "~" + d.join(","))
            }
            a.length && (a = ["type=nfl", "k=" + g.A.key, "m=" + (g.l.ba ? 1 : 0), "pf=" + g.l.dz, "v=" + g.A.ur, "branch=JSAPI", "log=" + a.join("!")], a = g.A.Fc + "://webapi.amap.com/count?" +
                a.join("&"), new g.fb.vb(a))
        }
    };
    setInterval(function () {
        g.bA.send()
    }, 1E4);
    g.va = {
        h: function (a, b, c, d, e) {
            if (this.ke(a, b, c || this)) return this;
            var f = this.bf = this.bf || {};
            f[a] = f[a] || [];
            e ? f[a].unshift({sb: b, Te: c || this, wj: d}) : f[a].push({sb: b, Te: c || this, wj: d});
            return this
        }, ke: function (a, b, c) {
            var d = this.bf;
            if (b && c) {
                if (d && a in d && d[a]) for (var e = 0; e < d[a].length; e += 1) if (d[a][e].sb === b && d[a][e].Te === c) return !0;
                return !1
            }
            return d && a in d && d[a] && 0 < d[a].length
        }, H: function (a, b, c) {
            if (!this.ke(a)) return this;
            var d = this.bf;
            if (d && d[a]) for (var e = 0; e < d[a].length; e += 1) if (!(d[a][e].sb !== b && "mv" !==
                b || c && d[a][e].Te !== c)) {
                d[a].splice(e, 1);
                d[a].length || (d[a] = null);
                break
            }
            return this
        }, JJ: function (a, b) {
            if (!this.ke(a)) return this;
            var c = this.bf;
            if (c && c[a]) for (var d = 0; d < c[a].length; d += 1) if (!b || c[a][d].Te === b) {
                c[a].splice(d, 1);
                c[a].length || (c[a] = null);
                break
            }
            return this
        }, q: function (a, b) {
            if (!this.ke(a)) return this;
            var c = {type: a};
            void 0 !== b && (b instanceof Array ? (c = b.slice(0), c.type = a) : "string" === typeof b || "number" === typeof b || "boolean" === typeof b ? c.value = b : g.a.jJ(b) ? c.value = b : c = g.extend(c, b));
            for (var d =
                [].concat(this.bf[a]), e = 0; e < d.length; e += 1) d[e].sb && (d[e].sb.call(d[e].Te || this, c), d[e] && d[e].wj && this.bf[a] && this.bf[a].splice(e, 1));
            return this
        }, pi: function (a) {
            a ? this.bf && this.bf[a] && (this.bf[a] = null) : this.bf = null;
            return this
        }
    };
    g.va.on || (g.va.on = g.va.h);
    g.va.off || (g.va.off = g.va.H);
    g.va.emit || (g.va.emit = g.va.q);
    g.Re = {
        set: function (a, b, c) {
            var d = this.Al;
            if (d && d[a]) {
                var d = d[a], e = "set" + this.Y3(a);
                if (d[e]) {
                    var f = !1;
                    !0 == d.D ? f = !0 : d.D = !0;
                    d[e](b, c);
                    f || (d.D = !1);
                    c || this.fK(a, b)
                } else d.set(a, b, c)
            } else (this.Ie = this.Ie || {})[a] = b, c || this.fK(a, b)
        }, Y3: function () {
            var a = {};
            return function (b) {
                a[b] || (a[b] = b[0].toUpperCase() + b.substr(1));
                return a[b]
            }
        }(), get: function (a, b, c) {
            var d, e = this.Al;
            d = "get" + this.Y3(a);
            if (e && e[a]) return c = e[a], c[d] ? (a = !1, !0 == c.D ? a = !0 : c.D = !0, b = c[d](b), a || (c.D = !1), b) : c.get(a, b);
            if (!c && this[d]) return a = !1, !0 ==
            this.D ? a = !0 : this.D = !0, b = this[d](b), a || (this.D = !1), b;
            if (this.Ie && this.Ie.hasOwnProperty(a)) return this.Ie[a]
        }, W: function (a, b, c) {
            this.Al || (this.Al = {});
            this.Al[a] !== b && (b.h(a, function (b) {
                this.fK(a, b)
            }, this), this.Al[a] = b, c || this.fK(a))
        }, Se: function (a, b, c) {
            for (var d = 0; d < a.length; d += 1) this.W(a[d], b, !c)
        }, ql: function (a) {
            this.Al && this.Al[a] && (this.Al[a].H(a, "mv", this), this.Al[a] = void 0)
        }, rl: function () {
            if (this.Al) for (var a in this.Al) this.Al.hasOwnProperty(a) && this.ql(a)
        }, fK: function (a, b) {
            var c = a + "Changed";
            if (this[c]) this[c](b);
            this.q(a, b)
        }, pEa: function (a, b, c) {
            var d = new (g.aa.extend({ka: [g.va, g.Re]}));
            d.FP = function () {
                for (var b = !0, e = 0; e < a.length; e += 1) d.get(a[e]) || (b = !1);
                b && (d.rl(), c())
            };
            for (var e = 0; e < a.length; e += 1) d.W(a[e], b)
        }, Ze: function (a, b) {
            var c, d;
            for (c in a) a.hasOwnProperty(c) && (d = a[c], this.set(c, d, b))
        }
    };
    g.A = {
        localStorage: !0,
        wH: 500,
        pe: !0,
        ue: {
            dark: "#202020",
            blue_night: "#090d20",
            test: "#033447",
            mapv: "#000001",
            techblue: "#000b11",
            insight: "#19212a",
            "default": "#fcf9f2"
        },
        WEa: "dark light blue darkblue fresh grey midblue".split(" "),
        key: "a246207e773195cdb7599502857d1458",
        Fc: "http",
        Xd: [115.423412, 39.442759, 117.514625, 41.060816, 116.405285, 39.904989],
        Ud: "http://restapi.amap.com",
        yb: "http://webapi.amap.com",
        TJ: "http://gaode.com",
        pv: "http://m.amap.com",
        rD: "http://webrd0{1,2,3,4}.is.autonavi.com/appmaptile?lang=[lang]&size=1&scale=1&style=8&x=[x]&y=[y]&z=[z]",
        uJ: "http://wprd0{1,2,3,4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x=[x]&y=[y]&z=[z]&scl=1&ltype=3",
        WT: "http://webst0{1,2,3,4}.is.autonavi.com/appmaptile?style=6&x=[x]&y=[y]&z=[z]",
        sK: "http://webst0{1,2,3,4}.is.autonavi.com/appmaptile?x=[x]&y=[y]&z=[z]&lang=zh_cn&size=1&scale=1&style=8",
        tK: "http://wprd0{1,2,3,4}.is.autonavi.com/appmaptile?x=[x]&y=[y]&z=[z]&lang=zh_cn&size=1&scl=1&style=8&ltype=11",
        yE: "http://wprd0{1,2,3,4}.is.autonavi.com/appmaptile?lang=[lang]&size=1&style=7&x=[x]&y=[y]&z=[z]",
        bL: "http://vector.amap.com",
        $K: "vdata.amap.com",
        dza: "ws"
    };

    function mc(a) {
        g.aa.zu = a.zu;
        g.l = a.l;
        g.CJ = a.CJ;
        g.Hua = a[7];
        a.l = null;
        g.A.yb = a[2].split(",")[0];
        g.A.Cj = a.Cj;
        g.A.qD = a.qD;
        var b = g.A.Fc = g.A.yb.split(":")[0];
        "https" === b && (g.A.dza = "wss", g.A.Ud = g.A.Ud.replace("http", "https"), g.A.rD = g.A.rD.replace("http", "https"), g.A.uJ = g.A.uJ.replace("http", "https"), g.A.WT = g.A.WT.replace("http", "https"), g.A.sK = g.A.sK.replace("http", "https"), g.A.tK = g.A.tK.replace("http", "https"), g.A.yE = g.A.yE.replace("http", "https"), g.A.bL = g.A.bL.replace("http", "https"));
        var c = window.location.href;
        0 !== c.indexOf("http") && window.parent && window.parent !== window && (c = window.parent.location.href);
        g.A.f3 = c;
        c = encodeURIComponent(c);
        g.A.hu = c;
        g.A.zi = g.A.yb + "/theme/v1.3/markers/" + (g.l.Mc ? "b" : "n");
        var d = document.createElement("style");
        d.type = "text/css";
        g.A.Ena = "url(" + b + "://webapi.amap.com/theme/v1.3/openhand.cur),default";
        var e = ".amap-container{cursor:" + g.A.Ena + ";}.amap-drag{cursor:url(" + b + "://webapi.amap.com/theme/v1.3/closedhand.cur),default;}";
        d.styleSheet ? (b = function () {
            try {
                d.styleSheet.cssText = e
            } catch (a) {
            }
        },
            d.styleSheet.disabled ? setTimeout(b, 10) : b()) : d.appendChild(document.createTextNode(e));
        (document.head || document.getElementsByTagName("head")[0]).appendChild(d);
        g.A.mode = Number(a[3]);
        g.A.Xd = a[1];
        g.A.key = a[0];
        g.A.ur = a[4];
        g.A.Jc = a[5];
        g.A.Uka = a[6];
        g.A.tQ = a[13]
    }

    window.AMap && window.AMap.ZK && window.AMap.ZK.XL && window.AMap.ZK.XL(mc);
    g.Fm = {xu: Math.PI / 180, ava: 180 / Math.PI, rQ: 6378137};
    (function () {
        function a(a) {
            return "undefined" === typeof a ? "" : a
        }

        g.Yh = {
            dqa: function (b) {
                b.name = a(b.name);
                var c = [b.y, b.x, b.name];
                if (g.l.ba) {
                    var d = [g.A.pv + "/callAPP?", "src=jsapi_q"];
                    d.push("&ios=" + encodeURIComponent("viewMap?sourceApplication=jsapi_q&dev=0&poiname=" + b.name + "&lat=" + b.y + "&lon=" + b.x));
                    d.push("&android=" + encodeURIComponent("androidamap?action=shorturl&q=" + c.join(",") + "&sourceApplication=jsapi_q"));
                    d.push("&wp=" + encodeURIComponent("viewMap?sourceApplication=jsapi_q&dev=0&poiname=" + b.name + "&lat=" +
                        b.y + "&lon=" + b.x));
                    d.push("&mo=" + encodeURIComponent(g.A.pv + "?q=" + c.join(",") + "&callapp=0&sourceApplication=jsapi_q"));
                    return d.join("")
                }
                return g.A.TJ + "?q=" + c.join(",") + "&src=jsapi_q"
            }, M3: function (b) {
                b.name = a(b.name);
                b.address = a(b.address);
                b.x = a(b.x);
                b.y = a(b.y);
                var c = [b.id, b.y, b.x, b.name, b.address];
                if (g.l.ba) {
                    var d = [g.A.pv + "/callAPP?", "src=jsapi_p"];
                    d.push("&ios=" + encodeURIComponent("multiPointShow?sourceApplication=jsapi_p&dev=0&q=" + [b.y, b.x, b.name, b.address, b.id].join() + "&title=" + b.name));
                    d.push("&android=" +
                        encodeURIComponent("androidamap?action=shorturl&p=" + c.join(",") + "&sourceApplication=jsapi_p"));
                    d.push("&wp=" + encodeURIComponent("multiPointShow?sourceApplication=jsapi_p&dev=0&q=" + [b.y, b.x, b.name, b.address, b.id].join() + "&title=" + b.name));
                    return d.join("")
                }
                return g.A.TJ + "?p=" + c.join(",") + "&src=jsapi_p"
            }, K3: function (b) {
                if (g.l.ba) {
                    var c = [g.A.pv + "/callAPP?", "src=jsapi_detail"];
                    c.push("&ios=" + encodeURIComponent("viewPOIDetail?sourceApplication=jsapi_detail&poiid=" + b.id));
                    b.name = a(b.name);
                    b.x = a(b.x);
                    b.y =
                        a(b.y);
                    c.push("&android=" + encodeURIComponent("androidamap?action=openFeature&featureName=PoiDetail&poiid=" + b.id + "&poiname=" + b.name + "&x=" + b.x + "&y=" + b.y + "&sourceApplication=jsapi_detail"));
                    c.push("&wp=" + encodeURIComponent("viewPOIDetail?sourceApplication=jsapi_detail&poiid=" + b.id));
                    c.push("&mo=" + encodeURIComponent(g.A.pv + "/detail/index/poiid=" + b.id + "&sourceApplication=jsapi_detail"));
                    return c.join("")
                }
                return g.A.TJ + "/detail/" + b.id + "?src=jsapi_detail"
            }, oR: function (b) {
                b.sname = a(b.sname);
                "" === b.sname &&
                (b.sname = "\u8d77\u70b9");
                b.dname = a(b.dname);
                "" === b.dname && (b.dname = "\u7ec8\u70b9");
                b.mcount = a(b.mcount);
                b.my = a(b.my);
                b.mx = a(b.mx);
                b.mname = a(b.mname);
                var c = [b.sy, b.sx, b.sname, b.dy, b.dx, b.dname, b.m, b.t, b.mcount, b.my, b.mx, b.mname];
                if (g.l.ba) {
                    var d = [g.A.pv + "/callAPP?", "src=jsapi_r_" + b.t];
                    d.push("&ios=" + encodeURIComponent("path?sourceApplication=jsapi_r_" + b.t + "&dev=0&slat=" + b.sy + "&slon=" + b.sx + "&sname=" + b.sname + "&dlat=" + b.dy + "&dlon=" + b.dx + "&dname=" + b.dname + "&m=" + b.m + "&t=" + b.t + "&vian=0&vialons=&vialats=&vianames="));
                    var e = b.t;
                    0 === b.t ? e = 2 : 2 === b.t && (e = 4);
                    d.push("&android=" + encodeURIComponent("androidamap://route?sourceApplication=jsapi_r_" + b.t + "&slat=" + b.sy + "&slon=" + b.sx + "&sname=" + b.sname + "&dlat=" + b.dy + "&dlon=" + b.dx + "&dname=" + b.dname + "&dev=0&" + b.m + "&t=" + e));
                    d.push("&wp=" + encodeURIComponent("path?sourceApplication=jsapi_r_" + b.t + "&dev=0&slat=" + b.sy + "&slon=" + b.sx + "&sname=" + b.sname + "&dlat=" + b.dy + "&dlon=" + b.dx + "&dname=" + b.dname + "&m=" + b.m + "&t=" + b.t + "&vian=0&vialons=&vialats=&vianames="));
                    d.push("&mo=" + encodeURIComponent(g.A.pv +
                        "/?r=" + c.join(",") + "&callapp=0&sourceApplication=jsapi_r_" + b.t));
                    return d.join("")
                }
                return g.A.TJ + "?r=" + c.join(",") + "src=jsapi_r_" + b.t
            }, Xs: function (a) {
                g.l.ba ? window.location.href = a : window.open(a)
            }
        }
    })();
    "function" !== typeof Object.keys && (Object.keys = function (a) {
        var b = [], c;
        for (c in a) a.hasOwnProperty(c) && b.push(c);
        return b
    });
    g.a = {
        CLASS_NAME: "AMap.Util", IK: [], Ea: 268435456, Qo: [215440491, 106744817], A9: function () {
            var a = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
            return function (b, c) {
                var d = [], e;
                c = c || a.length;
                if (b) for (e = 0; e < b; e++) d[e] = a[0 | Math.random() * c]; else {
                    var f;
                    d[8] = d[13] = d[18] = d[23] = "-";
                    d[14] = "4";
                    for (e = 0; 36 > e; e++) d[e] || (f = 0 | 16 * Math.random(), d[e] = a[19 === e ? f & 3 | 8 : f])
                }
                return d.join("")
            }
        }(), MC: {
            start: function (a) {
                a.startTime = new Date;
                a.Vs = [];
                var b = (new Date).getTime();
                a.id = requestAnimationFrame(function d() {
                    var e =
                        (new Date).getTime();
                    a.Vs.push(e - b);
                    b = e;
                    a.id = requestAnimationFrame(d)
                })
            }, cancel: function (a) {
                a.id && cancelAnimationFrame(a.id)
            }, stop: function (a) {
                a.kna = new Date - a.startTime;
                this.cancel(a);
                a.MC = Math.round(1E3 / (a.kna / (a.Vs.length + 1)))
            }
        }, V3: function (a, b, c) {
            var d = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : !1;
            if (a === b) return b;
            switch (3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : "linear") {
                case "ease":
                    c = g.qw.hI(0.25, 0.1, 0.25, 1)(c);
                    break;
                case "ease-in":
                    c = g.qw.hI(0.42, 0, 1, 1)(c);
                    break;
                case "ease-out":
                    c =
                        g.qw.hI(0, 0, 0.58, 1)(c);
                    break;
                case "ease-in-out":
                    c = g.qw.hI(0.42, 0, 0.58, 1)(c)
            }
            var e = a + (b - a) * c;
            d && (e >>= 0);
            return e
        }, createObjectURL: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "text/javascript; charset=utf-8",
                c = null;
            try {
                c = (window.URL || window.webkitURL).createObjectURL(new Blob([a], {type: b}))
            } catch (d) {
                c = null
            }
            return c
        }, revokeObjectURL: function (a) {
            (window.URL || window.webkitURL).revokeObjectURL(a)
        }, FBa: function (a) {
            for (var b = {}, c = 0, d = a.length; c < d; c++) b[a[c]] = c;
            return b
        }, RC: function (a) {
            var b =
                {};
            if (g.a.dk(a, "object")) for (var c in a) a.hasOwnProperty(c) && (b[a[c]] = c);
            return b
        }, Zf: function (a, b) {
            for (var c = 0, d = b.length; c < d; c += 1) a.push(b[c])
        }, create: "function" === typeof Object.create ? Object.create : function (a, b) {
            function c() {
            }

            c.prototype = a;
            var d = new c, e;
            for (e in b) b.hasOwnProperty(e) && (d[e] = b[e]);
            return d
        }, lb: function (a) {
            if ("object" === typeof a && null !== a) {
                if (a.h6 || this.dk(a, "Float32Array") || this.dk(a, "Uint16Array")) return a;
                var b = this.isArray(a) ? [] : {}, c;
                for (c in a) a.hasOwnProperty(c) && (b[c] = g.a.lb(a[c]));
                return b
            }
            return a
        }, X4: function (a) {
            return (a | 0) === a
        }, Cwa: "function" === typeof Object.setPrototypeOf ? Object.setPrototypeOf : function (a, b) {
            for (var c in b) a[c] = b[c]
        }, Mh: function (a) {
            return "function" === typeof a
        }, nla: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "webgl";
            if (!a) return a;
            for (var c = [], d = 0, e = a.length; d < e; d += 2) {
                var f = parseInt(a.substr(d, 2), 16);
                if ("webgl" === b || "rgba" === b && 0 === d) f = this.hc(f / 255, 3);
                c.push(f)
            }
            c.push(c.shift());
            return c
        }, Bs: function () {
        }, keys: "function" === typeof Object.keys ?
            Object.keys : function (a) {
                var b = [], c;
                for (c in a) a.hasOwnProperty(c) && b.push(c);
                return b
            }, map: function (a, b) {
            var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, d = [];
            if (a && a.length) g.a.Nb(a, function () {
                for (var e = arguments.length, f = Array(e), h = 0; h < e; h++) f[h] = arguments[h];
                d[f[1]] = b.apply(c || a, f)
            }); else return a;
            return d
        }, forEach: function (a, b) {
            if (a && a.length) {
                var c = a.length;
                if (0 < c && (b(a[0], 0), 1 < c)) {
                    b(a[1], 1);
                    for (var d = 2; d < c; d++) b(a[d], d)
                }
            }
        }, Nb: function (a, b) {
            var c = 2 < arguments.length && void 0 !==
            arguments[2] ? arguments[2] : null;
            if (a && a.length) for (var d = 0, e = a.length; d < e && !1 !== b.call(c, a[d], d, a); d++) ;
        }, find: function (a, b) {
            for (var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null, d = 0, e = a.length; d < e; d++) if ("function" === typeof b) {
                if (b.call(c, a[d], d, a)) return a[d]
            } else if (a[d] === b) return a[d];
            return null
        }, jJ: function (a) {
            return "object" === typeof HTMLElement ? a instanceof HTMLElement : a && "object" === typeof a && 1 === a.nodeType && "string" === typeof a.nodeName
        }, bw: function (a, b) {
            var c = "ASDFGHJKLQWERTYUIO!sdfghjkleiu3~yr5-P&mq9`%zCN*b=8@^xpVM",
                d, e;
            "v5" < (b || "v5") ? (d = c.length, e = 512) : (d = 27, c = c.substr(0, 27), e = 333);
            var f, h, k, l, m;
            h = [];
            k = NaN;
            l = 0;
            for (m = a.length; l < m; l++) f = a[l], f = c.indexOf(f), isNaN(k) ? k = f * d : (h.push(k + f - e), k = NaN);
            return h
        }, kwa: function (a, b) {
            for (var c = 1, c = 512 < b.length ? Math.round(Math.pow(b.length, 0.5)) : b.length, d = Math.ceil(b.length / c), e = 0; e < d; e += 1) {
                var f = c * e, h = f + c;
                h > b.length && (h = b.length);
                for (; f < h; f += 1) a(b[f])
            }
        }, dCa: function (a) {
            if (/^rgba\(/.test(a)) return this.Fv(a);
            var b = a = this.QH(a);
            "#" === a[0] && (a = a.substring(1), 3 === a.length && (a =
                a.replace(/./g, function (a) {
                    return a + a
                })), b = this.zr(8 === a.length ? a : "ff" + a));
            return this.Fv(b)
        }, QH: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "", a = a.toLowerCase(), b = {
                aliceblue: "#f0f8ff",
                antiquewhite: "#faebd7",
                aqua: "#00ffff",
                aquamarine: "#7fffd4",
                azure: "#f0ffff",
                beige: "#f5f5dc",
                bisque: "#ffe4c4",
                black: "#000000",
                blanchedalmond: "#ffebcd",
                blue: "#0000ff",
                blueviolet: "#8a2be2",
                brown: "#a52a2a",
                burlywood: "#deb887",
                cadetblue: "#5f9ea0",
                chartreuse: "#7fff00",
                chocolate: "#d2691e",
                coral: "#ff7f50",
                cornflowerblue: "#6495ed",
                cornsilk: "#fff8dc",
                crimson: "#dc143c",
                cyan: "#00ffff",
                darkblue: "#00008b",
                darkcyan: "#008b8b",
                darkgoldenrod: "#b8860b",
                darkgray: "#a9a9a9",
                darkgreen: "#006400",
                darkkhaki: "#bdb76b",
                darkmagenta: "#8b008b",
                darkolivegreen: "#556b2f",
                darkorange: "#ff8c00",
                darkorchid: "#9932cc",
                darkred: "#8b0000",
                darksalmon: "#e9967a",
                darkseagreen: "#8fbc8f",
                darkslateblue: "#483d8b",
                darkslategray: "#2f4f4f",
                darkturquoise: "#00ced1",
                darkviolet: "#9400d3",
                deeppink: "#ff1493",
                deepskyblue: "#00bfff",
                dimgray: "#696969",
                dodgerblue: "#1e90ff",
                firebrick: "#b22222",
                floralwhite: "#fffaf0",
                forestgreen: "#228b22",
                fuchsia: "#ff00ff",
                gainsboro: "#dcdcdc",
                ghostwhite: "#f8f8ff",
                gold: "#ffd700",
                goldenrod: "#daa520",
                gray: "#808080",
                green: "#008000",
                greenyellow: "#adff2f",
                honeydew: "#f0fff0",
                hotpink: "#ff69b4",
                indianred: "#cd5c5c",
                indigo: "#4b0082",
                ivory: "#fffff0",
                khaki: "#f0e68c",
                lavender: "#e6e6fa",
                lavenderblush: "#fff0f5",
                lawngreen: "#7cfc00",
                lemonchiffon: "#fffacd",
                lightblue: "#add8e6",
                lightcoral: "#f08080",
                lightcyan: "#e0ffff",
                lightgoldenrodyellow: "#fafad2",
                lightgrey: "#d3d3d3",
                lightgreen: "#90ee90",
                lightpink: "#ffb6c1",
                lightsalmon: "#ffa07a",
                lightseagreen: "#20b2aa",
                lightskyblue: "#87cefa",
                lightslategray: "#778899",
                lightsteelblue: "#b0c4de",
                lightyellow: "#ffffe0",
                lime: "#00ff00",
                limegreen: "#32cd32",
                linen: "#faf0e6",
                magenta: "#ff00ff",
                maroon: "#800000",
                mediumaquamarine: "#66cdaa",
                mediumblue: "#0000cd",
                mediumorchid: "#ba55d3",
                mediumpurple: "#9370d8",
                mediumseagreen: "#3cb371",
                mediumslateblue: "#7b68ee",
                mediumspringgreen: "#00fa9a",
                mediumturquoise: "#48d1cc",
                mediumvioletred: "#c71585",
                midnightblue: "#191970",
                mintcream: "#f5fffa",
                mistyrose: "#ffe4e1",
                moccasin: "#ffe4b5",
                navajowhite: "#ffdead",
                navy: "#000080",
                oldlace: "#fdf5e6",
                olive: "#808000",
                olivedrab: "#6b8e23",
                orange: "#ffa500",
                orangered: "#ff4500",
                orchid: "#da70d6",
                palegoldenrod: "#eee8aa",
                palegreen: "#98fb98",
                paleturquoise: "#afeeee",
                palevioletred: "#d87093",
                papayawhip: "#ffefd5",
                peachpuff: "#ffdab9",
                peru: "#cd853f",
                pink: "#ffc0cb",
                plum: "#dda0dd",
                powderblue: "#b0e0e6",
                purple: "#800080",
                rebeccapurple: "#663399",
                red: "#ff0000",
                rosybrown: "#bc8f8f",
                royalblue: "#4169e1",
                saddlebrown: "#8b4513",
                salmon: "#fa8072",
                sandybrown: "#f4a460",
                seagreen: "#2e8b57",
                seashell: "#fff5ee",
                sienna: "#a0522d",
                silver: "#c0c0c0",
                skyblue: "#87ceeb",
                slateblue: "#6a5acd",
                slategray: "#708090",
                snow: "#fffafa",
                springgreen: "#00ff7f",
                steelblue: "#4682b4",
                tan: "#d2b48c",
                teal: "#008080",
                thistle: "#d8bfd8",
                tomato: "#ff6347",
                turquoise: "#40e0d0",
                violet: "#ee82ee",
                wheat: "#f5deb3",
                white: "#ffffff",
                whitesmoke: "#f5f5f5",
                yellow: "#ffff00",
                yellowgreen: "#9acd32"
            };
            return "string" === typeof a ? b[a.toLowerCase()] ?
                b[a.toLowerCase()] : a : a
        }, iI: function (a, b, c) {
            var d, e;
            d = Math.floor(c / 2);
            e = c - d;
            d = (1 << d) - 1 << e;
            e = (1 << e) - 1;
            return [c, a & d | b & e, b & d | a & e]
        }, jI: function (a) {
            return a ? encodeURIComponent(a) : ""
        }, Xc: function (a, b, c, d) {
            c = a[b].i[c];
            if ("undefined" === typeof c) return null;
            a = a[b].s;
            if ("number" === typeof c) return a[c];
            for (; "undefined" === typeof c[d.toString()] && !(d -= 1, 3 > d);) ;
            d = c[d.toString()];
            return "number" === typeof d ? a[d] : null
        }, Fv: function (a) {
            a = a.split(",");
            a[0] = parseFloat(a[0].split("rgba(")[1]) / 255;
            a[1] = parseFloat(a[1]) / 255;
            a[2] = parseFloat(a[2]) / 255;
            a[3] = parseFloat(a[3]);
            return a
        }, Xva: function (a) {
            a = a.split(",");
            a[0] = parseFloat(a[0].split("rgb(")[1]) / 255;
            a[1] = parseFloat(a[1]) / 255;
            a[2] = parseFloat(a[2]) / 255;
            return a
        }, RT: function (a) {
            return "rgba(" + 255 * a[0] + "," + 255 * a[1] + "," + 255 * a[2] + "," + a[3] + ")"
        }, Sma: function (a) {
            return this.RT(this.Sl(a))
        }, Sl: function (a) {
            if (a instanceof Array) return 3 == a.length && a.push(1), a;
            a = this.QH(a);
            if (0 == a.indexOf("#")) {
                if (4 === a.length) return a = a.substr(1).replace(/./g, function (a) {
                    return a + a
                }), this.Ns(a);
                if (7 == a.length) return this.Ns(a.substr(1));
                if (9 == a.length) return a = a.substr(1), this.Ok(a.substr(6) + a.substr(0, 6))
            } else {
                if (0 == a.indexOf("rgb(")) return a = this.Xva(a), a.push(1), a;
                if (0 == a.indexOf("rgba(")) return this.Fv(a)
            }
        }, G7: function (a) {
            return g.a.zr("ff" + a)
        }, zr: function (a) {
            for (var b = [], c = 0, d = a.length; c < d; c += 2) b.push(parseInt(a.substr(c, 2), 16));
            b.push((b.shift() / 255).toFixed(2));
            return "rgba(" + b.join(",") + ")"
        }, Ns: function (a) {
            return g.a.Ok("ff" + a)
        }, Ok: function (a) {
            for (var b = [], c = 0, d = a.length; c < d; c += 2) b.push(parseInt(a.substr(c,
                2), 16) / 255);
            b.push(b.shift());
            return b
        }, vi: function (a) {
            for (var b in a) if (a.hasOwnProperty(b)) return !1;
            return !0
        }, ro: function (a, b) {
            0 <= b && a.splice(b, 1);
            return a
        }, Zwa: function (a, b) {
            return a.startsWith ? a.startsWith(b) : a.substr(0, b.length) === b
        }, ay: function (a, b) {
            var c = g.a.indexOf(a, b);
            return g.a.ro(a, c)
        }, filter: function (a, b, c) {
            var d = [];
            g.a.Nb(a, function (a, f) {
                b.call(c, a, f) && d.push(a)
            });
            return d
        }, indexOf: function (a, b) {
            if (!a || !a.length) return -1;
            if (a.indexOf) return a.indexOf(b);
            for (var c = 0; c < a.length; c += 1) if (a[c] ===
                b) return c;
            return -1
        }, HC: function (a, b) {
            return a.endsWith ? a.endsWith(b) : a.length < b.length ? !1 : a.substr(a.length - b.length) == b ? !0 : !1
        }, bind: function () {
            var a = !1;
            Function.prototype.bind && (a = !0);
            return function (b, c) {
                var d = 2 < arguments.length ? Array.prototype.slice.call(arguments, 2) : null;
                return a ? d ? (d.unshift(c), b.bind.apply(b, d)) : b.bind(c) : function () {
                    return b.apply(c, d || arguments)
                }
            }
        }(), Db: function (a, b) {
            b = b || {};
            a.B = g.extend({}, a.B, b);
            return a.B
        }, Kma: function (a, b, c) {
            return "function" == typeof b ? this.kP(a, !0, this.Ila(b,
                c, 1)) : this.kP(a, !0)
        }, kP: function (a, b, c, d, e, f, h) {
            var k;
            c && (k = e ? c(a, d, e) : c(a));
            if (void 0 !== k) return k;
            if (!this.c5(a)) return a;
            if (d = this.isArray(a)) {
                if (k = this.jra(a), !b) return this.pla(a, k)
            } else {
                var l = Object.prototype.toString.call(a), m = "[object Function]" == l;
                if ("[object Object]" == l || "[object Arguments]" == l || m && !e) {
                    if (k = this.kra(m ? {} : a), !b) return this.yla(k, a)
                } else return e ? a : {}
            }
            f || (f = []);
            h || (h = []);
            for (e = f.length; e--;) if (f[e] == a) return h[e];
            f.push(a);
            h.push(k);
            (d ? this.qla : this.Dla)(a, function (d, e) {
                k[e] =
                    g.a.kP(d, b, c, e, a, f, h)
            });
            return k
        }, yla: function (a, b) {
            return null == b ? a : this.Bla(b, Object.keys(b), a)
        }, c5: function (a) {
            var b = typeof a;
            return !!a && ("object" == b || "function" == b)
        }, iEa: function (a) {
            return !!a && "object" == typeof a
        }, fEa: function (a) {
            return "number" == typeof a && -1 < a && 0 == a % 1 && 9007199254740991 >= a
        }, jra: function (a) {
            var b = a.length, c = new a.constructor(b);
            b && "string" == typeof a[0] && Object.hasOwnProperty.call(a, "index") && (c.index = a.index, c.input = a.input);
            return c
        }, pla: function (a, b) {
            var c = -1, d = a.length;
            for (b ||
                 (b = Array(d)); ++c < d;) b[c] = a[c];
            return b
        }, kra: function (a) {
            a = a.constructor;
            "function" == typeof a && a instanceof a || (a = Object);
            return new a
        }, Ila: function (a, b, c) {
            if ("function" != typeof a) return this.Yu;
            if (void 0 === b) return a;
            switch (c) {
                case 1:
                    return function (c) {
                        return a.call(b, c)
                    };
                case 3:
                    return function (c, e, f) {
                        return a.call(b, c, e, f)
                    };
                case 4:
                    return function (c, e, f, h) {
                        return a.call(b, c, e, f, h)
                    };
                case 5:
                    return function (c, e, f, h, k) {
                        return a.call(b, c, e, f, h, k)
                    }
            }
            return function () {
                return a.apply(b, arguments)
            }
        }, qla: function (a,
                          b) {
            for (var c = -1, d = a.length; ++c < d && !1 !== b(a[c], c, a);) ;
            return a
        }, Yu: function (a) {
            return a
        }, lna: function (a) {
            return function (b, c, d) {
                var e = g.a.Axa(b);
                d = d(b);
                for (var f = d.length, h = a ? f : -1; a ? h-- : ++h < f;) {
                    var k = d[h];
                    if (!1 === c(e[k], k, e)) break
                }
                return b
            }
        }, Dla: function (a, b) {
            return g.a.lna()(a, b, Object.keys)
        }, Axa: function (a) {
            return g.a.c5(a) ? a : Object(a)
        }, Bla: function (a, b, c) {
            c || (c = {});
            for (var d = -1, e = b.length; ++d < e;) {
                var f = b[d];
                c[f] = a[f]
            }
            return c
        }, T2: function () {
            return !1
        }, join: function (a, b) {
            if (a.join) return a.join(b);
            var c = [], d;
            for (d in a) a.hasOwnProperty(d) && c.push(d + "=" + (a[d] || ""));
            return c.join(b)
        }, A3: function (a, b) {
            return (a || "") + Math.round(Math.random() * Math.pow(10, b || 6))
        }, ub: function () {
            var a = 0;
            return function (b) {
                b._amap_id || (a += 1, b._amap_id = a);
                return b._amap_id
            }
        }(), yoa: "", zf: Date.now ? function () {
            return Date.now()
        } : function () {
            return (new Date).getTime()
        }, oD: function (a, b, c, d) {
            var e;
            if (d) {
                var f = 0, h, k = this.zf;
                e = function () {
                    h = k();
                    if (h - f < b) return !1;
                    f = h;
                    a.apply(c,
                        arguments)
                }
            } else {
                var l, m, n;
                n = function () {
                    l = !1;
                    m && (e.apply(c, m), m = !1)
                };
                e = function () {
                    l ? m = arguments : (l = !0, a.apply(c, arguments), setTimeout(n, b))
                }
            }
            return e
        }, hc: function (a, b) {
            return a === a << 0 ? a : +parseFloat(a).toFixed(b || 0)
        }, isArray: Array.isArray ? Array.isArray : function (a) {
            return this.dk(a, "array")
        }, dk: function (a, b) {
            return Object.prototype.toString.call(a).split(" ")[1].slice(0, -1).toLowerCase() === b.toLowerCase()
        }, ka: "function" === typeof Array.prototype.ka ? function (a, b) {
            return a.ka(b)
        } : function (a, b) {
            return -1 !==
                this.indexOf(a, b)
        }, A8: function (a) {
            var b = 0;
            if (0 === a.length) return b;
            for (var c, d = 0, e = a.length; d < e; d += 1) c = a.charCodeAt(d), b = (b << 5) - b + c, b &= b;
            return b
        }, qCa: function (a, b) {
            b = b ? Math.ceil(parseInt(b.substr(6)) / 24) : 1;
            for (var c = "", d = 0, e = a.length; d < e; d++) c += String.fromCharCode((a.charCodeAt(d) - 256 - b + 65535) % 65535);
            return c
        }, Hna: function (a, b) {
            var c = (a + "").slice(-2), d = (b + "").slice(-2);
            a = a.slice(0, -2);
            b = b.slice(0, -2);
            var e = parseInt((d + c).slice(1)), f = Math.ceil(e / 250) % 2 ? 1 : -1, d = parseInt("1" + d) / 3E3;
            a -= parseInt("1" + c) /
                3E3 * f;
            b -= d * (1 < e / 500 ? 1 : -1);
            return new g.U(parseFloat(a).toFixed(5), parseFloat(b).toFixed(5))
        }, j6: function (a) {
            return "undefined" !== typeof JSON && JSON.stringify ? g.a.A8(JSON.stringify(a)) : null
        }, AGa: function (a, b) {
            if (b || !a.hasOwnProperty("_amap_hash")) {
                var c = g.a.j6(a);
                c && (a._amap_hash = c)
            }
            return a._amap_hash
        }, iepngFix: function (a) {
            function b() {
                for (var a; c.length;) a = c.shift(), window.DD_belatedPNG.fixPng(a);
                d.iS = !0
            }

            this.T6 || (this.T6 = [], this.iS = !1);
            var c = this.T6, d = this;
            if ("img" === a.tagName.toLowerCase()) c.push(a);
            else {
                a = a.getElementsByTagName("*");
                for (var e = 0; e < a.length; e += 1) c.push(a[e])
            }
            window.DD_belatedPNG && this.iS ? setTimeout(function () {
                b()
            }, 100) : this.iS || g.qb.load("AMap.FixPng", b)
        }, Ia: function (a) {
            if (g.a.isArray(a)) if (g.a.isArray(a[0])) for (var b = 0; b < a.length; b += 1) a[b] = g.a.Ia(a[b]); else if (b = typeof a[0], "string" === b || "number" === b) return new g.U(a[0], a[1]);
            return a
        }, fza: function (a) {
            for (var b = [], c = 0, d = a.length; c < d; c += 1) b[c] = [a[c].x, a[c].y];
            return b
        }, nq: function (a) {
            return g.a.isArray(a) ? new g.xd(a[0], a[1]) :
                a
        }, dP: function (a) {
            var b = a.type, c = a.rU, d = a.error;
            a = new g.fb.XMLHttpRequest(a.url, {vd: void 0 === b ? "GET" : b, l2: a.data, OT: "text/plain"});
            a.h("complete", function (a) {
                a = JSON.parse(a.data);
                c && c(a)
            }, this);
            a.h("error", function () {
                var a = {errmsg: "REQUEST_FAILED"};
                d && d(a)
            }, this)
        }
    };
    (function () {
        function a(a) {
            window.clearTimeout(a)
        }

        function b(a) {
            var b, c, d = ["webkit", "moz", "o", "ms"];
            for (b = 0; b < d.length && !c; b += 1) c = window[d[b] + a];
            return c
        }

        function c(a) {
            var b = +new Date, c = Math.max(0, (g.l.Ql ? 50 : 20) - (b - d));
            d = b + c;
            return window.setTimeout(a, c)
        }

        var d = 0, e = window.requestAnimationFrame || b("RequestAnimationFrame") || c,
            f = window.cancelAnimationFrame || b("CancelAnimationFrame") || b("CancelRequestAnimationFrame") || a;
        g.a.Rc = function (a, b, c, d) {
            if (c) b ? g.a.bind(a, b).call(b, d) : a(); else return e(function () {
                b ?
                    g.a.bind(a, b).call(b, d) : a()
            })
        };
        g.a.ni = function (a) {
            a && f.call(window, a)
        }
    })();
    g.a.PT = window.requestIdleCallback ? function (a, b) {
        return window.requestIdleCallback(a, b)
    } : function (a) {
        var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, c = g.a.zf();
        return setTimeout(function () {
            a({
                didTimeout: !1, timeRemaining: function () {
                    return Math.max(0, 70 - (g.a.zf() - c))
                }
            })
        }, b.timeout || 0)
    };
    g.a.DP = window.cancelIdleCallback ? function (a) {
        return window.cancelIdleCallback(a)
    } : function (a) {
        clearTimeout(a)
    };
    (function (a) {
        var b = 1, c = {};
        a.a.Awa = function (a, b) {
            if (c[a]) {
                var f = c[a];
                f.lE = 1;
                f.result = b;
                if (f.dn) {
                    for (var h = f.dn, k = 0, l = h.length; k < l; k++) h[k].call(null, b);
                    f.dn = null
                }
            }
        };
        a.a.Gma = function (a) {
            c[a] = null
        };
        a.a.Oya = function (a, b) {
            if (c[a]) {
                var f = c[a];
                0 < f.lE ? b(null, f.result) : (f.dn || (f.dn = []), f.dn.push(b))
            } else b(null, a)
        };
        a.a.hR = function (d, e) {
            var f = navigator.geolocation;
            if (!a.l.gD || "https:" === document.location.protocol) return d(null, f);
            var h;
            e && e.Pya && (h = "f" + b++, c[h] = {lE: 0});
            var k = null, l = !1;
            e && e.timeout && (k = setTimeout(function () {
                k =
                    void 0;
                d({code: 3, info: "TIME_OUT", message: "Get geolocation time out."});
                l = !0
            }, e.timeout));
            f.getCurrentPosition(function () {
                l || (clearTimeout(k), k = void 0, d(null, f))
            }, function (b) {
                l || (clearTimeout(k), k = void 0, 2 === b.code && 0 < b.message.indexOf("permission") ? a.qb.load("AMap.GeoRemoteLoc", function () {
                    d(null, a.x$, h)
                }) : d(null, f))
            }, {timeout: 1E3});
            return h
        }
    })(g);
    (function (a) {
        var b = a.aa.extend({
            ka: [a.va], r: function () {
            }
        });
        a.Ej = new b
    })(g);
    (function (a) {
        var b = a.aa.extend({
            ka: [a.va], r: function () {
                this.qfa()
            }, qfa: function () {
                a.Ej && a.Ej.h("vecTileParsed.buildings", this.Wea, this)
            }, V4: function (a) {
                return a.map.bZ
            }, Ppa: function (a) {
                return this.V4(a) ? a.map.qN : null
            }, xwa: function (a, b) {
                if (b) {
                    var e = b.map;
                    e && (e.qN ? e.qN.toString() : "") !== (a ? a.toString() : "") && (e.qN = a || [], e.set("display", 0))
                }
            }, Z7: function (a, b) {
                if (b) {
                    var e = b.map;
                    e && e.bZ !== a && (e.bZ = a, e.set("display", 0))
                }
            }, NAa: function () {
            }, YY: function (a, b) {
                if (a) for (var e = 0, f = a.length; e < f; e++) a[e] && 0 > b.indexOf(a[e]) &&
                b.push(a[e])
            }, X2: function (b) {
                if (!b) return null;
                b = b.map.za;
                for (var d = 0, e = b.length; d < e; d++) if (a.o.bi && b[d] instanceof a.o.bi && b[d].ea && b[d].ea.length && (-1 !== b[d].ea.indexOf("building") || -1 !== b[d].ea.indexOf("poilabel")) && b[d].Ka) {
                    var f = b[d].T.get("tiles", null, !0);
                    if (f && f.length) return b[d]
                }
                return null
            }, npa: function (a) {
                if (a = this.X2(a)) {
                    if (a = a.T.get("tiles", null, !0)) a = a[0]; else return null;
                    if (!a || !a.length) return null;
                    for (var b = [], e = 0, f = a.length; e < f; e++) {
                        var h = a[e];
                        h.de && h.de.gf && this.YY(h.de.gf, b)
                    }
                    return b
                }
            },
            Wea: function (a) {
                if (a.bp && a.bp.de) {
                    var b = a.bp.de.gf;
                    if (b) {
                        var e = [];
                        this.YY(b, e);
                        this.q("vecTileParsed.builds.found", {I1: e, bp: a.bp})
                    }
                }
            }
        });
        a.Fj = new b
    })(g);
    (function (a) {
        function b() {
            return {
                checkup: function () {
                    var a = Array.prototype.slice.call(arguments, 0);
                    a.pop()(null, a)
                }
            }
        }

        function c(a) {
            return {
                injectCode: function (b, c) {
                    var d = null, e = null;
                    try {
                        d = (new Function("self", b))(a)
                    } catch (f) {
                        console.error("error", e), e = f.toString()
                    }
                    c(e, d)
                }
            }
        }

        function d(a) {
            function b(c, d) {
                function e(a, b, c) {
                    a = {Bz: Date.now(), nz: h, error: a, result: b, kq: !1, Tk: !1};
                    if (c) for (var f in c) c.hasOwnProperty(f) && (a[f] = c[f]);
                    d(a)
                }

                var f = c.KR, h = c.nz, l = c.PP, m = c.fC, n = c.ola || [], p = a._wkHandlers[f];
                p ? p[l] ? m ?
                    p[l].apply(p, n.concat(e)) : e(null, p[l].apply(p, n)) : e("Unknown cmd: " + l) : e("Can not find handler for: " + f)
            }

            var c = [], d = null, e = null;
            for (d in this._wkHandlers) -1 !== d.indexOf("_def_") && (e = this._wkHandlers.SEa = d);
            "function" === typeof this._wkHandlers[e].r && this._wkHandlers[e].r.call(this._wkHandlers[e]);
            a.fu = function (a) {
                c.push.apply(c, a)
            };
            a.addEventListener("message", function (d) {
                function e(b) {
                    if (t) {
                        t.push(b);
                        var d = !!b.kq;
                        d || n++;
                        b = n >= h || b.Tk;
                        if (d || b) {
                            d = 1 < t.length ? {Rva: t} : t[0];
                            d.Bz = Date.now();
                            d.hGa = p;
                            if (c.length) {
                                try {
                                    a.postMessage(d,
                                        c)
                                } catch (f) {
                                    a.postMessage(d), console.error(f)
                                }
                                c.length = 0
                            } else a.postMessage(d);
                            t.length = 0;
                            b && (e = t = null)
                        }
                    } else console.error("Seemed callback already sent!!", b, b.result.ec)
                }

                var f = d.data;
                d = f.Ova || [f];
                for (var h = d.length, n = 0, p = Date.now() - f.Bz, t = [], f = 0; f < h; f++) b(d[f], e)
            }, !1)
        }

        function e(d, h) {
            this.B = a.extend({batchSend: !0, lazy: !1, libPolyfills: null}, h);
            this.zp = [];
            this.xA = this.B.clientId || "w" + f++;
            this.B.onReady && this.OS(this.B.onReady);
            this.VF = this.Yda();
            if ("function" === typeof d) {
                var m = {};
                m[this.VF] = d;
                d = m
            }
            d[e.vR] =
                c;
            d[this.gY()] = b;
            this.kG = d;
            this.rB(null);
            this.B.lazy || this.Ox();
            a.Cqa || !1 === this.B.hostWorker || (a.Cqa = this);
            this.Zn && this.Zn.r && this.Zn.r.call(this.Zn)
        }

        var f = 1, h = 1;
        a.extend(e, {
            vR: "_g_", Mwa: function (a) {
                if (!a.hba) {
                    var b = [];
                    a.addEventListener("message", function (a) {
                        a = a.data;
                        a = a.Rva || [a];
                        for (var c = 0, d = a.length; c < d; c++) {
                            var e = a[c], f;
                            a:{
                                f = e.nz;
                                for (var h = !e.Tk, k = 0, v = b.length; k < v; k++) {
                                    var w = b[k];
                                    if (f === w.nz) {
                                        h || b.splice(k, 1);
                                        f = w;
                                        break a
                                    }
                                }
                                f = void 0
                            }
                            f && f.fC(e.error, e.result, !0)
                        }
                    }, !1);
                    a.Waa = b;
                    a.hba = !0
                }
            }
        });
        a.extend(e.prototype,
            {
                Yda: function () {
                    return "_def_" + this.xA
                }, gY: function () {
                    return "_cln_" + this.xA
                }, qja: function () {
                    var a = Array.prototype.slice.call(arguments, 0);
                    this.U_ = a;
                    if (this.ux) {
                        for (var b = 0, c = this.ux.length; b < c; b++) this.ux[b].apply(null, a);
                        this.ux.length = 0
                    }
                }, fu: function (a) {
                    this.hja && this.zp.push.apply(this.zp, a)
                }, OS: function (a) {
                    this.U_ ? a.apply(null, this.U_) : (this.ux || (this.ux = []), this.ux.push(a))
                }, Ox: function (b) {
                    var c = this;
                    if (!c.fX) {
                        c.fX = !0;
                        var d = function (d, e) {
                            d && a.l.kS && console.warn(d);
                            c.qja.call(c, d, e);
                            b && b(d, e)
                        };
                        a.l.kS ? this.dja(function (a, b) {
                            b ? this.xfa(b, function (a, c) {
                                a ? d(a) : (this.rB(c), this.$O = c, this.zp.length = 0, this.Zn = null, d(null, {
                                    Fla: b,
                                    aza: c
                                }))
                            }) : d("Worker start failed!")
                        }) : d("Worker not supported!")
                    }
                }, kf: function (b, c) {
                    var d = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : a.a.Bs, f = this;
                    b = b || f.VF;
                    var h = {};
                    if (a.a.dk(c, "object")) {
                        var q = "return {", r;
                        for (r in c) if (c.hasOwnProperty(r)) var s = c[r],
                            q = "function" === typeof s ? q + ("\n\t" + r + ": " + s.toString() + ",") : "object" === typeof s ? q + ("\n\t" + r + ": " + JSON.stringify(s) +
                                ",") : q + ("\n\t" + r + ': "' + s + '",');
                        c = new Function(q + "\n}")
                    }
                    f.LW(b, c, h);
                    f.rB(null, h);
                    f.OS(function (a) {
                        a ? d(a) : f.$O ? (a = f.lY(c, f.dN(f.xA, b), !0), f.$O.sendMessage(e.vR + ":injectCode", a, function (a, b) {
                            a || f.rB(f.$O, h);
                            d(a, b)
                        })) : d("Worker msger missing!!")
                    })
                }, dN: function (a, b) {
                    if (!a || !b) throw Error("clientId or ns missing!!");
                    return a + "_" + b
                }, wea: function (a, b, c) {
                    function d() {
                        var b = Array.prototype.slice.call(arguments, 0);
                        c.sendMessage.apply(c, [a].concat(b))
                    }

                    var e = this;
                    if (!c) return function () {
                        var a = b.apply(e.Zn, arguments);
                        e.fX || "untilCall" === e.B.lazy && e.Ox();
                        return a
                    };
                    d._proxy2Worker = !0;
                    return d
                }, Yba: function (a) {
                    var b = {}, c;
                    for (c in a) a.hasOwnProperty(c) && this.LW(c, a[c], b);
                    return b
                }, LW: function (a, b, c) {
                    b = b.call(null, !1);
                    for (var d in b) b.hasOwnProperty(d) && (c[a + ":" + d] = b[d], a === this.VF && (c[d] = b[d]))
                }, rB: function (a, b) {
                    if (!b) this.Zn || (this.Zn = this.Yba(this.kG)), b = this.Zn; else if (this.Zn) for (var c in b) b.hasOwnProperty(c) && (this.Zn[c] = b[c]);
                    for (c in b) if (b.hasOwnProperty(c)) {
                        var d = b[c];
                        "function" === typeof d && (this[c] = this.wea(c,
                            d, a))
                    }
                    this.hja = !!a
                }, lY: function (a, b) {
                    var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !1, d = a.toString(), e,
                        d = d.replace(/^function([^\(]*)\(/, function () {
                            e = "_prep_h" + h++;
                            return "function " + e + "("
                        });
                    return e ? "\n\t\t\t\t" + d + "\n\t\t\t\tif (self._wkHandlers['" + b + "'] && " + !c + ") {\n\t\t\t\t\tthrow new Error('" + b + " already exists!')\n\t\t\t\t} else {\n\t\t\t\t\tif (" + c + " && self._wkHandlers['" + b + "']) {\n\t\t\t\t\t\tvar handlerFunObj = " + e + ".call(null, self) || {}\n\n\t\t\t\t\t\tif (typeof Object.assign === 'function') {\n\t\t\t\t\t\t\tObject.assign(self._wkHandlers['" +
                        b + "'], handlerFunObj)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (var key in handlerFunObj) {\n\t\t\t\t\t\t\t\tif (handlerFunObj.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\t\tself._wkHandlers['" + b + "'][key] = handlerFunObj[key]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself._wkHandlers['" + b + "'] = " + e + ".call(null, self) || {}\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t" + e + " = null;\n\t\t\t" : (console.error("No function match!!"), !1)
                }, dja: function (a) {
                    var b = this.xA, c = [], d;
                    for (d in this.kG) if (this.kG.hasOwnProperty(d)) {
                        var f = this.lY(this.kG[d], this.dN(b, d));
                        f && c.push(f)
                    }
                    b = this.B.libPolyfills || [];
                    d = 0;
                    for (f = b.length; d < f; d++) b[d] = "(" + b[d].toString() + ")(self);";
                    var h = b.join(";\n") + ";\n" + c.join(";\n"), c = this.B.hostWorker, r = this;
                    c && c !== r ? c.OS(function (b, c) {
                        b ? a.call(r, b) : c.aza.sendMessage(e.vR + ":injectCode", h, function (b) {
                            b ? a.call(r, b) : a.call(r, null, c.Fla)
                        })
                    }) : a.call(r, null, r.uka(h))
                }, uka: function (b) {
                    b = ["self._wkHandlers={};", b, "(" + d.toString() + ")(self)"].join("");
                    var c;
                    try {
                        var e =
                            a.a.createObjectURL(b);
                        c = new Worker(e);
                        setTimeout(function () {
                            a.a.revokeObjectURL(e);
                            e = null
                        }, 3E3)
                    } catch (f) {
                        return
                    }
                    return c
                }, Qca: function (b) {
                    var c = 1, d = b.Waa, e = this, f = !!e.B.batchSend;
                    return function (h) {
                        var r = Array.prototype.slice.call(arguments, 1),
                            s = "function" === typeof r[r.length - 1] ? r.pop() : null, u = e.xA, v = h.split(":"),
                            w = e.VF;
                        1 < v.length && (h = v[1], w = v[0]);
                        r = {Bz: a.a.zf(), KR: e.dN(u, w), fC: !!s, nz: u + "_" + c++, PP: h, ola: r};
                        s && d.push({PP: r.PP, KR: r.KR, Bz: r.Bz, nz: r.nz, fC: s});
                        f ? e.Bba(b, r) : e.rx(b, r)
                    }
                }, rx: function (a, b) {
                    if (this.zp.length) {
                        try {
                            a.postMessage(b,
                                this.zp)
                        } catch (c) {
                            a.postMessage(b), console.error(c)
                        }
                        this.zp.length = 0
                    } else a.postMessage(b)
                }, Bba: function (b, c) {
                    b.WN || (b.WN = []);
                    b.WN.push(c);
                    if (!b.M_) {
                        var d = this;
                        b.M_ = setTimeout(function () {
                            b.M_ = null;
                            var c = b.WN;
                            c.length && (d.rx(b, 1 === c.length ? c[0] : {Bz: a.a.zf(), Ova: c}), c.length = 0)
                        }, 0)
                    }
                }, lka: function (a) {
                    var b = this;
                    a.addEventListener("error", function (a) {
                        console.error(a);
                        b.rB(null)
                    }, !1);
                    e.Mwa(a)
                }, xfa: function (a, b) {
                    var c = this;
                    c.lka(a);
                    var d = this.Qca(a);
                    if (e.vca) b.call(c, null, {sendMessage: d}); else {
                        e.vca = !0;
                        var f = [c.gY() + ":checkup", Math.random().toFixed(5) + "", Math.round(1E3 * Math.random()), !1, function (a, e) {
                            var h = !0;
                            if (a || !e || e.length !== f.length - 2) h = !1; else for (var k = 0, v = e.length; k < v; k++) if (e[k] !== f[k + 1]) {
                                h = !1;
                                break
                            }
                            h ? b.call(c, null, {sendMessage: d}) : (console.error(a), b.call(c, "Self checkup failed!!"))
                        }];
                        d.apply(c, f)
                    }
                }
            });
        a.kA = e
    })(g);
    (function () {
        if (!g.te) {
            g.te = {af: {}, Ey: {}};
            var a = g.te, b = g.te.af, c = g.a, d = g.A;
            b.start = function (b) {
                a.Ey[b.id] = {
                    K: b.K, time: {J4: c.zf()}, cma: function () {
                        return c.zf() - this.time.J4
                    }
                }
            };
            b.end = function (b) {
                var d = a.Ey[b.id], e = d.time, d = c.bind(d.cma, d), l = b.index, m = b.key;
                "function" !== typeof b.Jc && (b.Jc = function () {
                });
                if (void 0 === e[m]) void 0 === l ? e[m] = d() : (e[m] = [], e[m][l] = d()); else if (void 0 !== l && void 0 === e[m][l]) e[m][l] = d(); else return b.Jc(Error("Duplicate Invoke"));
                b.Jc(null)
            };
            b.push = function (b) {
                var c = a.Ey[b.id].time,
                    d = b.key, e = b.tf;
                "function" !== typeof b.Jc && (b.Jc = function () {
                });
                if (void 0 === c[d]) c[d] = e; else return b.Jc(Error("Duplicate Invoke"));
                b.Jc(null)
            };
            b.send = function (b) {
                var c = d.Fc + "://webapi.amap.com/count?", k = g.extend(e({K: a.Ey[b.id].K}), b.params || {}), l = g.a;
                b.params && b.params.rs && !b.params.type && (b = a.Ey[b.id].time, delete b.J4, k = g.extend(k, b));
                b = [];
                for (var m in k) l.isArray(k[m]) ? b.push([m, k[m].join("-")].join("=")) : b.push([m, k[m]].join("="));
                b.push("jl=" + (d.qD ? 1 : 0));
                if (l.dk(window.performance, "performance") &&
                    l.dk(window.performance.getEntriesByType, "function")) {
                    var n = 0, p = ["webapi.amap.com", "jsapi-test.amap.test", "localhost"], q = ["/maps", "/css"];
                    l.Nb(window.performance.getEntriesByType("resource"), function (a) {
                        var b = void 0, c = void 0;
                        a.name.match(/:\/\/([^:?#/]+)/) && (b = RegExp.$1);
                        a.name.match(/[^\/](\/[^/?#:]+)/) && (c = RegExp.$1);
                        b && c && l.ka(p, b) && l.ka(q, c) && (n += parseInt(a.responseEnd - a.startTime))
                    });
                    0 !== n && b.push("sd=" + n)
                }
                new g.fb.vb(c + b.join("&"))
            };
            var e = function (a) {
                var b = g.l;
                a = g.j.o3(a.K);
                return {
                    type: "q",
                    resolution: a.width + "*" + a.height,
                    k: d.key,
                    u: d.hu,
                    iw: b.Af ? 1 : 0,
                    cw: b.L1 ? 1 : 0,
                    gc: b.wR,
                    m: b.ba ? 1 : 0,
                    cv: b.ou ? 1 : 0,
                    pf: b.dz,
                    dpr: window.devicePixelRatio,
                    screenwidth: screen.width,
                    scale: b.dL || 0,
                    detect: b.ja ? 1 : 0,
                    v: d.ur
                }
            }
        }
    })();
    (function () {
        if (!g.lL) {
            var a = g.a.RC({A: "Conf", extend: "extend", l: "Browser", bw: "uncodeCoords"});
            g.lL = function () {
                var b = new g.kA(function () {
                    return {
                        r: function () {
                            this.Uw = {fk: 0, zv: 0};
                            this.Ik = {};
                            this.co = [];
                            this.yp = {};
                            this.Pj = {};
                            this.zt = 0;
                            this.AZ = 500
                        }, sh: function (a, b) {
                            var e = a.Id, f = a.Ae, h = "building" === a.ea[0];
                            (f && e !== this.Uw.zv && this.Uw.zv || !f && !h && e !== this.Uw.fk && this.Uw.fk) && this.Ska(!!f);
                            f ? this.Uw.zv = e : h || (this.Uw.fk = e);
                            this.isa(a, b)
                        }, Ska: function (a) {
                            if (a) this.GW(); else if (!a && Object.keys(this.Ik).length) for (var b in this.Ik) this.Ik.hasOwnProperty(b) &&
                            (a = this.Ik[b], a.ut || a.abort())
                        }, Jxa: function () {
                            this.zt > this.AZ && this.BT(Object.keys(this.Pj).slice(0, Math.floor(this.AZ / 2)))
                        }, BT: function (a) {
                            for (var b = 0, e = a.length; b < e; b++) delete this.Pj[a[b]];
                            this.zt -= a.length
                        }, ZP: function (a) {
                            var b = a.ea;
                            a = a.Ae;
                            var e = new XMLHttpRequest;
                            e.rq = "";
                            e.dE = [(new Date).getTime(), a ? 1 : 0, b.join("|")].join("-");
                            return e
                        }, o4: function (a, b, e) {
                            var f = this, h = a.Eb, k = a.Ae, l = [], m = h.filter(function (a) {
                                var b = f.Pj[a.key];
                                if (b) {
                                    if (b.sZ) return !0;
                                    l.push(a.key)
                                }
                                return !1
                            }), n = !1;
                            if (m.length && ((n =
                                m.length === h.length) || "function" !== typeof b || b(a, m), !k)) {
                                var p = [];
                                m.forEach(function (a) {
                                    a = a.key;
                                    p.push.apply(p, f.Pj[a]);
                                    delete f.Pj[a]
                                });
                                this.zt -= m.length;
                                this.Ds(this.extend({}, a, {LE: p, Id: a.Id, Zk: n}), e)
                            }
                            !k && l.length && this.BT(l);
                            this.Jxa();
                            return n
                        }, isa: function (a, b) {
                            function e(e, f) {
                                var m = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : !1;
                                if (p.Ik[q.dE] || p.mfa(q)) {
                                    var n = e.split("|");
                                    f && (n[0] = f + n[0]);
                                    var t = n, x = "";
                                    n[n.length - 1] && (x = n[n.length - 1], t = n.splice(0, n.length - 1));
                                    if (k) for (var n = 0, y = t.length; n <
                                    y; n++) {
                                        if (t[n]) {
                                            var D = JSON.parse(t[n]);
                                            if (D.length) {
                                                var C = D[0].split("-").slice(0, -1).join("/");
                                                p.Pj[C] ? p.Pj[C].push(D) : (p.Pj[C] = [D], p.zt++);
                                                m && (p.Pj[C].sZ = !0)
                                            }
                                        }
                                    } else p.Ds(p.extend({}, a, {LE: t, Id: h, Zk: m, bS: !0}), b);
                                    return x
                                }
                                r || (p.El(l, b), r = !0)
                            }

                            var f = this, h = a.Id, k = a.Ae, l = a.Eb, m = a.url;
                            if (!this.o4(a, function (a, b) {
                                var c = a.Eb, d = a.url, e = d.match(/&t=([^&]+)/)[1].split(";");
                                b.reverse().forEach(function (a) {
                                    a = c.indexOf(a);
                                    -1 !== a && e.splice(a, 1)
                                });
                                a.url = d.replace(/&t=[^&]+/, "&t=" + e.join(";"))
                            }, b)) {
                                if (this.EB() &&
                                    (this.GW(), k)) {
                                    this.El(l, b);
                                    return
                                }
                                var n = 0, p = this, q = this.ZP(a);
                                k ? this.co.push(q) : (this.Ik[q.dE] = q, q.Eb = l, q.Jc = b);
                                var r = !1;
                                q.onreadystatechange = function () {
                                    if (4 === q.readyState && 0 === q.status) q.ut || (q.ut = !0, f.El(l, b), q.onreadystatechange = null, k ? f.Z_(q) : delete f.Ik[q.dE]), q = null; else if (!q.ut) if (3 === q.readyState) {
                                        var h = q.responseText.substring(n);
                                        q.rq = e(h, q.rq);
                                        n = q.responseText.length
                                    } else 4 === q.readyState && (h = q.responseText.substring(n), a.Pg && (h += "|"), e(h, q.rq, !0), q.rq = "", k ? f.Z_(q) : delete f.Ik[q.dE],
                                        q = null)
                                };
                                q.onerror = function () {
                                };
                                q.open("GET", m, !0);
                                q.send();
                                k && (q.X8 = l.map(function (a) {
                                    return a.key
                                }))
                            }
                        }, ED: function (a) {
                            function b(d, p, r) {
                                var s = [r, d, p].join("/");
                                d = e.filter(function (a) {
                                    return a.key === s
                                })[0];
                                18 < k && !n && (s += "/" + k);
                                if (d && "loaded" !== d.status && -1 !== m.indexOf(t)) if ("limg" === t) p = h[1], d.pd = p, "string" === typeof p.b && (p.b = w.CA(p.b)), r = "", (r = "object" === typeof p.u ? p.u.url : p.u) && (p.u = {
                                    url: r,
                                    tk: "limg-" + d.key + "-" + f
                                }); else {
                                    p = {
                                        yg: d.ta,
                                        Hi: s,
                                        Na: h,
                                        vd: t,
                                        Mx: a.lu,
                                        hD: "building" === t,
                                        wi: "poilabel" === t || "roadlabel" ===
                                            t || "building" === t && q
                                    };
                                    if ("poilabel" === t || "roadlabel" === t) p.pd = d.pd;
                                    t === m[m.length - 1] && (d.status = "loaded");
                                    l.push(p)
                                }
                            }

                            var e = a.Eb, f = a.pS, h = a.sC, k = a.Id, l = a.Kc, m = a.ea, n = a.Af, p = a.zR,
                                q = a.pe, r = h[0].split("-"), s = parseInt(r[1]), u = parseInt(r[2]),
                                v = parseInt(r[0]), w = this, t = r[3], r = Math.pow(2, v);
                            10 > v && (s <= p && b(s + r, u, v), s >= r - p && b(s - r, u, v));
                            b(s, u, v)
                        }, Z_: function (a) {
                            for (var b = this.co.length - 1; 0 <= b; b--) this.co[b] === a && this.co.splice(b, 1)
                        }, mfa: function (a) {
                            for (var b = 0, e = this.co.length; b < e; b++) if (this.co[b] === a) return !0;
                            return !1
                        }, EB: function () {
                            return Object.keys(this.Ik).length ? !0 : !1
                        }, GW: function () {
                            if (this.co.length) {
                                for (var a = this.co.length - 1; 0 <= a; a--) {
                                    var b = this.co[a];
                                    b.ut || b.abort();
                                    b.X8 && this.BT(b.X8)
                                }
                                this.co.length = 0
                            }
                        }, El: function (a, b) {
                            b(null, {Eb: a, d5: !0, disabled: this.disabled}, {Tk: !0})
                        }
                    }
                }, {batchSend: !1});
                b.kf(null, new Function("\n     return {\n      " + a.Conf + ": " + JSON.stringify(g.A) + ",\n      " + a.extend + ": " + g.extend.toString() + ",\n      " + a.Browser + ": " + JSON.stringify(g.l) + ",\n      " + a.uncodeCoords + ": " +
                    g.a.bw.toString() + "\n     }"));
                return b
            }
        }
    })();
    g.j = {
        CLASS_NAME: "DomUtil", get: function (a) {
            return "string" === typeof a ? document.getElementById(a) : a
        }, jD: function (a, b, c) {
            return a.parentNode == b ? !0 : a.parentNode && a.parentNode !== document.body && !g.j.pn(a.parentNode, c) ? g.j.jD(a.parentNode, b) : !1
        }, wo: function (a) {
            if (!a) return [0, 0];
            var b = a.offsetWidth, c = a.offsetHeight;
            b && c || !a.childNodes[0] || (b = b || a.childNodes[0].offsetWidth, c = c || a.childNodes[0].offsetHeight);
            window.opera && (b = Math.max(b, a.childNodes[0].scrollWidth), c = Math.max(c, a.childNodes[0].scrollHeight));
            return [b, c]
        }, CEa: function (a, b) {
            var c = document.head || document.getElementsByTagName("head")[0];
            if (c) {
                var d = document.createElement("link");
                d.setAttribute("rel", "stylesheet");
                d.setAttribute("type", "text/css");
                d.setAttribute("href", a);
                b ? c.appendChild(d) : c.insertBefore(d, c.firstChild)
            } else document.write("<link rel='stylesheet' href='" + a + "'/>")
        }, Xc: function (a, b) {
            var c = a.style[b];
            !c && a.currentStyle && (c = a.currentStyle[b]);
            c && "auto" !== c || !document.defaultView || (c = (c = document.defaultView.getComputedStyle(a,
                null)) ? c[b] : null);
            c && "auto" !== c || "height" !== b || (c = a.clientHeight + "px");
            c && "auto" !== c || "width" !== b || (c = a.clientWidth + "px");
            return "auto" === c ? null : c
        }, RI: function (a) {
            if (a) return new g.xd(a.clientWidth || document.body.clientWidth, a.clientHeight || (g.l.js ? "CSS1Compat" === document.compatMode ? document.documentElement.clientHeight : document.body.clientHeight : document.body.clientHeight), !0)
        }, o3: function (a) {
            return new g.xd(a.clientWidth, a.clientHeight)
        }, uR: function (a) {
            var b = 0, c = 0, d = a, e = document.body, f = document.documentElement,
                h, k = g.l.Zu;
            do {
                b += d.offsetTop || 0;
                c += d.offsetLeft || 0;
                b += parseInt(g.j.Xc(d, "borderTopWidth"), 10) || 0;
                c += parseInt(g.j.Xc(d, "borderLeftWidth"), 10) || 0;
                h = g.j.Xc(d, "position");
                if (d.offsetParent === e && "absolute" === h) break;
                if ("fixed" === h) {
                    b += e.scrollTop || f.scrollTop || 0;
                    c += e.scrollLeft || f.scrollLeft || 0;
                    break
                }
                d = d.offsetParent
            } while (d);
            d = a;
            do {
                if (d === e) break;
                b -= d.scrollTop || 0;
                c -= d.scrollLeft || 0;
                g.j.Zna() || !g.l.G9 && !k || (c += d.scrollWidth - d.clientWidth, k && "hidden" !== g.j.Xc(d, "overflow-y") && "hidden" !== g.j.Xc(d, "overflow") &&
                (c += 17));
                d = d.parentNode
            } while (d);
            return new g.G(c, b)
        }, Zna: function () {
            g.j.jda || (g.j.jda = !0, g.j.ida = "ltr" === g.j.Xc(document.body, "direction"));
            return g.j.ida
        }, create: function (a, b, c, d) {
            a = document.createElement(a);
            c && (a.className = c);
            b && (d && "before" === d ? b.insertBefore(a, b.firstChild) : b.appendChild(a));
            return a
        }, z2: function () {
            document.selection && document.selection.empty && document.selection.empty();
            this.kia || (this.kia = document.onselectstart, document.onselectstart = g.a.T2)
        }, M2: function () {
        }, Dxa: function (a,
                          b, c) {
            c ? this.Sa(a, b) : this.ab(a, b)
        }, pn: function (a, b) {
            if (a && b) return 0 < a.className.length && RegExp("(^|\\s)" + b + "(\\s|$)").test(a.className)
        }, Sa: function (a, b) {
            a && b && (a.classList && a.classList.add ? a.classList.add(b) : g.j.pn(a, b) || (a.className += (a.className ? " " : "") + b))
        }, pwa: function (a, b) {
            a && (a.className = b || "")
        }, ab: function (a, b) {
            function c(a, c) {
                return c === b ? "" : a
            }

            a && b && (a.classList && a.classList.remove ? a.classList.remove(b) : a.className = a.className.replace(/(\S+)\s*/g, c).replace(/(^\s+|\s+$)/, ""))
        }, H3: function (a,
                         b) {
            return 1 === b ? "" : "opacity" in a.style ? "opacity:" + b : 8 <= document.documentMode ? "-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=" + Math.ceil(100 * b) + ")'" : "filter:alpha(opacity=" + Math.ceil(100 * b) + ")"
        }, zq: function (a, b) {
            if (a.style) if ("opacity" in a.style) a.style.opacity = b; else if ("filter" in a.style) {
                var c = Math.round(100 * b);
                a.style.filter = "";
                100 !== c && (a.style.filter = " progid:DXImageTransform.Microsoft.Alpha(opacity=" + c + ")")
            }
        }, vU: function (a) {
            for (var b = document.documentElement.style, c = 0; c < a.length; c +=
                1) if (a[c] in b) return a[c];
            return !1
        }, W3: function (a) {
            var b = g.l.H9;
            return "translate" + (b ? "3d" : "") + "(" + a.x + "px," + a.y + "px" + ((b ? ",0" : "") + ")")
        }, BDa: function (a, b) {
            return g.j.W3(b.add(b.Kd(-1 * a))) + (" scale(" + a + ") ")
        }, d8: function (a, b, c) {
            a.Vi = b;
            !c && g.l.xH ? (b = g.j.W3(b), c = a.style[g.j.jg].split("rotate"), 1 < c.length ? (c[0] = b, a.style[g.j.jg] = c.join("rotate")) : a.style[g.j.jg] = b, g.l.U5 && (a.style.WebkitBackfaceVisibility = "hidden")) : (a.style.left = b.x + "px", a.style.top = b.y + "px")
        }, Td: function (a) {
            a.Vi || (a.Vi = a.style.left ?
                new g.G(parseInt(a.style.left), parseInt(a.style.top)) : new g.G(0, 0));
            return a.Vi
        }, qGa: function (a, b) {
            a = a instanceof Array ? a : [a];
            for (var c = 0; c < a.length; c += 1) a[c].style.cssText = b
        }, W7: function (a, b) {
            ";" !== b[b.length - 1] && (b += ";");
            return b.toLowerCase() !== a.style.cssText.replace(/ /g, "").toLowerCase() ? (a.style.cssText = b, !0) : !1
        }, Wa: function (a, b) {
            a = a instanceof Array ? a : [a];
            for (var c = 0; c < a.length; c += 1) for (var d in b) b.hasOwnProperty(d) && (a[c].style[d] = b[d]);
            return this
        }, ZD: function (a) {
            for (; a.childNodes.length;) a.removeChild(a.childNodes[0])
        },
        remove: function (a) {
            a && a.parentNode && a.parentNode.removeChild(a)
        }, rotate: function (a, b, c) {
            var d = g.j.jg;
            c = c || {x: a.clientWidth / 2, y: a.clientHeight / 2};
            d ? (a.style[d] = "" + (" rotate(" + b + "deg)"), a.style[g.j.Ys[d] + "-origin"] = c.x + "px " + c.y + "px") : (d = Math.cos(b * Math.PI / 180), b = Math.sin(b * Math.PI / 180), a.style.filter = "progid:DXImageTransform.Microsoft.Matrix()", 0 < a.filters.length && (a = a.filters.item(0), a.Dx = -c.x * d + c.y * b + c.x, a.Dy = -c.x * b - c.y * d + c.y, a.M11 = a.M22 = d, a.M12 = -(a.M21 = b)))
        }, S3: function (a, b, c) {
            var d = g.j.jg;
            c = c ||
                {x: a.clientWidth / 2, y: a.clientHeight / 2};
            return d ? g.j.Ys[d] + ":" + ("" + (" rotate(" + b + "deg)")) + ";" + (g.j.Ys[d] + "-origin:" + c.x + "px " + c.y + "px") : ""
        }, rm: function (a, b, c) {
            a.width = b;
            a.height = c
        }, getElementsByClassName: function (a, b, c) {
            b = b || "*";
            c = c || document;
            if (c.getElementsByClassName) return c.getElementsByClassName(a);
            b = c.getElementsByTagName(b);
            a = RegExp("(^|\\s)" + a + "(\\s|$)");
            c = [];
            for (var d = 0, e; d < b.length; d++) e = b[d], a.test(e.className) && c.push(e);
            return c
        }, fillText: function (a, b) {
            if (a) return void 0 !== a.textContent ?
                a.textContent = b : void 0 !== a.innerText ? a.innerText = b : a.innerHTML = b, a
        }
    };
    (function () {
        var a = g.j.vU(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]), b;
        g.extend(g.j, {
            z2: function () {
                g.F.h(window, "selectstart", g.F.preventDefault);
                if (a) {
                    var c = document.documentElement.style;
                    "none" !== c[a] && (b = c[a], c[a] = "none")
                }
            }, M2: function () {
                g.F.H(window, "selectstart", g.F.preventDefault);
                a && "none" !== b && (document.documentElement.style[a] = b, b = "none")
            }, Rna: function () {
                g.F.h(window, "dragstart", g.F.preventDefault)
            }, Aoa: function () {
                g.F.H(window, "dragstart", g.F.preventDefault)
            }
        })
    })();
    g.j.jg = g.j.vU(["WebkitTransform", "OTransform", "MozTransform", "msTransform", "transform"]);
    g.j.Ys = {
        transform: "transform",
        WebkitTransform: "-webkit-transform",
        OTransform: "-o-transform",
        MozTransform: "-moz-transform",
        msTransform: "-ms-transform"
    };
    g.j.qF = g.j.vU(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]);
    g.j.$za = "webkitTransition" === g.j.qF || "OTransition" === g.j.qF ? g.j.qF + "End" : "transitionend";
    g.F = {
        h: function (a, b, c, d) {
            function e(b) {
                b = b || window.event;
                b.target = b.target || b.srcElement;
                return c.call(d || a, b, k)
            }

            var f = g.a.ub(a) + "_" + g.a.ub(c) + "_" + g.a.ub(d || a), h = b + f;
            if (a[h]) return this;
            var k = b;
            g.l.GQ && "mousewheel" === b && (b = "DOMMouseScroll");
            if (g.l.js && ("mouseover" === b || "mouseout" === b)) {
                var l = e;
                b = "mouseover" === b ? "mouseenter" : "mouseleave";
                e = function (a) {
                    l(a)
                }
            }
            if (g.l.V6 && 0 === b.indexOf("touch")) return a[h] = e, this.$ka(a, b, e, f);
            g.l.Ff && "dblclick" === b && this.Yka && this.Yka(a, e, f);
            "addEventListener" in a ? a.addEventListener(b,
                e, !1) : "attachEvent" in a ? a.attachEvent("on" + b, e) : a["on" + b] = e;
            a[h] = e;
            return this
        }, wj: function (a, b, c, d) {
            var e = this;
            this.h(a, b, function h(k) {
                e.H(a, b, h, d);
                return c.call(d || a, k || window.event, b)
            }, d)
        }, H: function (a, b, c, d) {
            c = g.a.ub(a) + "_" + g.a.ub(c) + "_" + g.a.ub(d || a);
            d = b + c;
            var e = a[d];
            g.l.GQ && "mousewheel" === b && (b = "DOMMouseScroll");
            !g.l.js || "mouseover" !== b && "mouseout" !== b || (b = "mouseover" === b ? "mouseenter" : "mouseleave");
            g.l.V6 && -1 < b.indexOf("touch") ? this.rva(a, b, c) : g.l.Ff && "dblclick" === b && this.nva ? this.nva(a, c) :
                "removeEventListener" in a ? a.removeEventListener(b, e, !1) : "detachEvent" in a && -1 === b.indexOf("touch") ? e && a.detachEvent("on" + b, e) : a["on" + b] = null;
            a[d] = void 0;
            return this
        }, xGa: function (a, b) {
            var c = document.createEvent("MouseEvents");
            c.initMouseEvent(a, !0, !0, window, 1, b.screenX, b.screenY, b.clientX, b.clientY, !1, !1, !1, !1, 0, null);
            b.target.dispatchEvent(c)
        }, ela: function (a) {
            a.vf = "info";
            g.l.ye && g.F.stopPropagation(a)
        }, stopPropagation: function (a) {
            a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0;
            return this
        },
        $wa: function (a) {
            var b = g.F.ela;
            g.l.Ff && (g.F.h(a, "touchstart", b, this), g.F.h(a, "touchmove", b, this), g.F.h(a, "touchend", b, this));
            g.l.ba || (g.F.h(a, "mousedown", b, this), g.F.h(a, "mouseup", b, this), g.F.h(a, "mousemove", b, this), g.F.h(a, "mousewheel", b, this));
            g.l.gT && (g.F.h(a, "pointerdown", b, this), g.F.h(a, "pointerup", b, this), g.F.h(a, "pointermove", b, this));
            g.l.W5 && (g.F.h(a, "MSPointerDown", b, this), g.F.h(a, "MSPointerUp", b, this), g.F.h(a, "MSPointerMove", b, this))
        }, preventDefault: function (a) {
            a.preventDefault ? a.preventDefault() :
                a.returnValue = !1;
            return this
        }, stop: function (a) {
            return g.F.preventDefault(a).stopPropagation(a)
        }, owa: function (a) {
            return a && a.getBoundingClientRect ? (a.TL = a.getBoundingClientRect(), a.sW = [a.clientLeft, a.clientTop], !0) : !1
        }, rya: function (a) {
            a.TL && (a.TL = null, a.sW = null)
        }, Poa: function (a, b) {
            var c = b.TL || b.getBoundingClientRect(), d = b.sW || [b.clientLeft, b.clientTop];
            return new g.G(a.clientX - c.left - d[0], a.clientY - c.top - d[1])
        }, fm: function (a, b) {
            if (b && b.getBoundingClientRect) return this.Poa(a, b);
            var c = document.body,
                d = document.documentElement,
                c = new g.G(g.l.Ff ? a.pageX : a.clientX + (c.scrollLeft || d.scrollLeft), g.l.Ff ? a.pageY : a.clientY + (c.scrollTop || d.scrollTop));
            return b ? c.$a(g.j.uR(b)) : c
        }, a5: function (a) {
            return 1 === a.which || 0 === a.button || 1 === a.button
        }
    };
    g.extend(g.F, {
        VN: [], EZ: !1, $ka: function (a, b, c, d) {
            switch (b) {
                case "touchstart":
                    return this.cla(a, b, c, d);
                case "touchend":
                    return this.ala(a, b, c, d);
                case "touchmove":
                    return this.bla(a, b, c, d)
            }
        }, Ao: function (a) {
            if (g.l.gT) return a;
            switch (a) {
                case "pointerdown":
                    return "MSPointerDown";
                case "pointerup":
                    return "MSPointerUp";
                case "pointercancel":
                    return "MSPointerCancel";
                case "pointermove":
                    return "MSPointerMove"
            }
        }, cla: function (a, b, c, d) {
            function e(a) {
                for (var b = !1, d = 0; d < f.length; d += 1) if (f[d].pointerId === a.pointerId) {
                    b = !0;
                    break
                }
                b || f.push(a);
                a.touches = f.slice();
                a.changedTouches = [a];
                c(a)
            }

            var f = this.VN;
            a["_amap_touchstart" + d] = e;
            a.addEventListener(this.Ao("pointerdown"), e, !1);
            this.EZ || (a = function (a) {
                for (var b = 0; b < f.length; b += 1) if (f[b].pointerId === a.pointerId) {
                    f.splice(b, 1);
                    break
                }
            }, document.documentElement.addEventListener(this.Ao("pointerup"), a, !1), document.documentElement.addEventListener(this.Ao("pointercancel"), a, !1), this.EZ = !0);
            return this
        }, bla: function (a, b, c, d) {
            function e(a) {
                if (a.pointerType !== a.MSPOINTER_TYPE_MOUSE ||
                    0 !== a.buttons) {
                    for (var b = 0; b < f.length; b += 1) if (f[b].pointerId === a.pointerId) {
                        f[b] = a;
                        break
                    }
                    a.touches = f.slice();
                    a.changedTouches = [a];
                    c(a)
                }
            }

            var f = this.VN;
            a["_amap_touchmove" + d] = e;
            a.addEventListener(this.Ao("pointermove"), e, !1);
            return this
        }, ala: function (a, b, c, d) {
            function e(a) {
                for (var b = 0; b < f.length; b += 1) if (f[b].pointerId === a.pointerId) {
                    f.splice(b, 1);
                    break
                }
                a.touches = f.slice();
                a.changedTouches = [a];
                c(a)
            }

            var f = this.VN;
            a["_amap_touchend" + d] = e;
            a.addEventListener(this.Ao("pointerup"), e, !1);
            a.addEventListener(this.Ao("pointercancel"),
                e, !1);
            return this
        }, rva: function (a, b, c) {
            c = a["_amap_" + b + c];
            switch (b) {
                case "touchstart":
                    a.removeEventListener(this.Ao("pointerdown"), c, !1);
                    break;
                case "touchmove":
                    a.removeEventListener(this.Ao("pointermove"), c, !1);
                    break;
                case "touchend":
                    a.removeEventListener(this.Ao("pointerup"), c, !1), a.removeEventListener(this.Ao("pointercancel"), c, !1)
            }
            return this
        }
    });
    (function () {
        function a(a) {
            var b = a.target || a.srcElement;
            b.BW && f(b.BW);
            b.BW = e(function () {
                var c = b.kp;
                if (c && c.jp) for (var d = 0; d < c.jp.length; d += 1) c.jp[d].call(c, a)
            })
        }

        function b() {
            var b = this.contentDocument.defaultView;
            b.kp = this.fba;
            b.addEventListener("resize", a);
            a.call(b, {target: b})
        }

        var c = document.attachEvent, d = navigator.userAgent.match(/(Trident|Edge)/), e = g.a.Rc, f = g.a.ni;
        g.extend(g.F, {
            dla: function (e, f) {
                if (!e.jp) if (e.jp = [], c) e.kp = e, e.attachEvent("onresize", a); else {
                    "static" === window.getComputedStyle(e).position &&
                    (e.style.position = "relative");
                    var l = e.kp = document.createElement("object");
                    l.setAttribute("style", "display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;");
                    l.fba = e;
                    l.onload = b;
                    l.type = "text/html";
                    d && e.appendChild(l);
                    l.data = "about:blank";
                    d || e.appendChild(l)
                }
                e.jp.push(f)
            }, MFa: function (b, d) {
                b.jp.splice(b.jp.indexOf(d), 1);
                b.jp.length || (c ? b.detachEvent("onresize", a) : (b.kp.contentDocument.defaultView.removeEventListener("resize",
                    a), b.kp = !b.removeChild(b.kp)))
            }, Hma: function (a) {
                a.jp = null;
                if (a.kp) {
                    var b = a.kp;
                    b.parentNode === a && b.parentNode.removeChild(b);
                    a.kp = null
                }
            }
        })
    })();
    g.qb = {
        $sa: g.A.yb + "/maps", zu: g.aa.zu, zS: 0, cz: [], uu: {}, Rg: function (a, b) {
            function c() {
                d += 1;
                d === e.length && b && b()
            }

            a.length || b();
            for (var d = 0, e = [], f = 0; f < a.length; f += 1) {
                var h = this.zu[a[f]];
                if (h) for (var k = 0; k < h.length; k += 1) e.push(h[k]);
                e.push(a[f])
            }
            for (f = 0; f < e.length; f += 1) this.CQ(e[f], c)
        }, kD: function (a) {
            for (var b = 0; b < a.length; b += 1) if (1 !== this.tC(a[b]).status) return !1;
            return !0
        }, CQ: function (a, b) {
            var c = this.tC(a);
            if (1 === c.status) b && b(); else {
                b && c.Px.push(b);
                try {
                    if (g.l.ss && window.localStorage) {
                        var d = window.localStorage["_AMap_" +
                        a];
                        d && (d = JSON.parse(d), d.version === g.A.Cj ? (window._jsload_(a, d.script, !0), d.css && window._cssload_(a, d.css, !0)) : window.localStorage.removeItem("_AMap_" + a))
                    }
                } catch (e) {
                }
                if (0 === c.status) {
                    this.Wua(a);
                    var f = this;
                    f.zS || (f.zS = 1, window.setTimeout(function () {
                        f.zS = 0;
                        var a = f.$sa + "?v=" + g.A.ur + "&key=" + g.A.key + "&m=" + f.cz.join(",") + "&vrs=" + g.A.Cj;
                        g.qb.xt(f.cz.join(","));
                        f.cz = [];
                        c.yK = f.tsa(a)
                    }, 1));
                    c.status = -1
                }
            }
        }, xt: function (a) {
            a = g.A.Ud + "/v3/log/init?" + ["s=rsv3&product=JsModule&key=" + g.A.key, "m=" + a].join("&");
            new g.fb.vb(a, {callback: "callback"})
        }, load: function (a, b) {
            var c = this.zu[a];
            if (c) {
                for (var d = [], e = 0; e < c.length; e += 1) d.push(c[e]);
                d.push(a);
                for (var f = 0, c = function () {
                    f += 1;
                    f === d.length && b && b()
                }, e = 0; e < d.length; e += 1) this.CQ(d[e], c)
            } else this.CQ(a, b)
        }, Wua: function (a) {
            for (var b = 0; b < this.cz.length; b += 1) if (this.cz[b] === a) return;
            this.cz.push(a)
        }, Cn: function (a, b) {
            var c = this.tC(a);
            try {
                eval(b)
            } catch (d) {
                return
            }
            c.status = 1;
            for (var e = 0, f = c.Px.length; e < f; e += 1) c.Px[e]();
            c.Px = []
        }, nd: function (a, b) {
            var c = this;
            c.timeout = setTimeout(function () {
                1 !==
                c.uu[a].status ? (c.remove(a), c.load(a, b)) : clearTimeout(c.timeout)
            }, 5E3)
        }, tC: function (a) {
            this.uu[a] || (this.uu[a] = {}, this.uu[a].status = 0, this.uu[a].Px = []);
            return this.uu[a]
        }, remove: function (a) {
            this.uu[a] = null
        }, tsa: function (a) {
            g.A.mode && (a += "&mode=" + g.A.mode);
            var b = document.createElement("script");
            b.charset = "utf-8";
            a && 0 === a.indexOf(g.A.yb) && (b.crossOrigin = "Anonymous");
            b.src = a;
            document.body.appendChild(b);
            return b
        }
    };
    window._jsload_ = function (a, b, c) {
        var d = g.qb.tC(a);
        d.yK && 0 <= g.a.indexOf(document.body.childNodes, d.yK) && document.body.removeChild(d.yK);
        d.yK = null;
        try {
            if (!c && window.localStorage && b && "" !== b && g.l.ss) {
                var e = window.localStorage["_AMap_" + a], e = e || "{}", e = JSON.parse(e);
                e.version !== g.A.Cj || e.script ? window.localStorage.setItem("_AMap_" + a, JSON.stringify({
                    version: g.A.Cj,
                    script: b
                })) : window.localStorage.setItem("_AMap_" + a, JSON.stringify({
                    version: g.A.Cj,
                    script: b,
                    css: e.css
                }))
            }
        } catch (f) {
        }
        g.qb.Cn(a, b)
    };
    window._cssload_ = function (a, b, c) {
        try {
            !c && window.localStorage && b && "" !== b && g.l.ss && window.localStorage.setItem("_AMap_" + a, JSON.stringify({
                css: b,
                version: g.A.Cj
            }))
        } catch (d) {
        }
        var e = document.createElement("style");
        e.type = "text/css";
        -1 === g.A.yb.indexOf("webapi.amap.com") && (b = b.replace(/webapi.amap.com/gi, g.A.yb.split("://")[1]));
        "https" === g.A.Fc && (b = b.replace(/http:/gi, "https:"));
        e.styleSheet ? (a = function () {
            try {
                e.styleSheet.cssText = b
            } catch (a) {
            }
        }, e.styleSheet.disabled ? setTimeout(a, 10) : a()) : e.appendChild(document.createTextNode(b));
        a = document.head || document.getElementsByTagName("head")[0];
        2 > a.childNodes.length ? a.appendChild(e) : a.insertBefore(e, a.childNodes[1])
    };
    (function (a) {
        var b = g.l;
        if (!g.indexedDB && b.Gi) {
            var c = a.indexedDB || a.webkitIndexedDB || a.msIndexedDB || a.mozIndexedDB,
                d = a.IDBKeyRange || a.jHa || a.QEa || a.PEa;
            if (c) {
                var e = g.a, f = null;
                a = "amap-jsapi" + (a.Aza ? "-debug" : "");
                var h = g.extend({}, g.va), k;
                try {
                    k = c.open(a), k.onsuccess = function () {
                        f = this.result;
                        h.q("dbReady", {status: "success"})
                    }, k.onerror = function () {
                        h.q("dbReady", {status: "error"})
                    }, k.onblocked = function () {
                        h.q("dbReady", {status: "blocked"})
                    }, k.onupgradeneeded = function (a) {
                        a.currentTarget.result.createObjectStore("tile",
                            {keyPath: "tileKey"})
                    }
                } catch (l) {
                    b.Gi = !1
                } finally {
                    if (!b.Gi) return
                }
                var b = function (a) {
                    return function () {
                        try {
                            return a.apply(this, arguments)
                        } catch (b) {
                            var c = arguments[arguments.length - 1];
                            "function" === typeof c && setTimeout(function () {
                                c({code: 4, lI: b})
                            }, 1)
                        }
                    }
                }, m = b(function (a, b) {
                    return null === f ? (setTimeout(function () {
                        b && b({code: 3})
                    }, 1), null) : f.transaction("tile", a).objectStore("tile")
                });
                g.indexedDB = {
                    OB: function (a, b) {
                        f ? "function" === typeof a && a() : h.h("dbReady", function (c) {
                            "success" === c.status ? "function" === typeof a &&
                                a() : "function" === typeof b && b({code: 3, status: status})
                        })
                    }, count: b(function (a) {
                        var b = this, c = arguments;
                        this.OB(function () {
                            b.xt.apply(b, c)
                        }, a)
                    }), xt: b(function (a) {
                        var b = m("readonly", a).count();
                        b.onsuccess = function () {
                            a(null, b.result)
                        };
                        b.onerror = function () {
                            a({code: 7})
                        }
                    }), get: b(function (a, b, c) {
                        var d = this, e = setTimeout(function () {
                            e && (e = null, c && c({code: 7}))
                        }, b.timeout || 1E3);
                        this.OB(function () {
                            d.Kda.call(d, a, function (a, b) {
                                e && (clearTimeout(e), e = null, c(a, b))
                            })
                        }, c)
                    }), Kda: b(function (a, b) {
                        var c = m("readonly", b);
                        if (e.isArray(a)) {
                            var d,
                                f;
                            (function () {
                                function e(b) {
                                    var f = c.get(a[b]);
                                    f.onsuccess = function (a) {
                                        a.target.result && (d[b] = a.target.result);
                                        h()
                                    };
                                    f.onerror = h
                                }

                                function h() {
                                    f++;
                                    f === a.length && b(null, d)
                                }

                                d = [];
                                for (var k = f = 0, l = a.length; k < l; k++) e(k)
                            })()
                        } else {
                            var h = c.get(a);
                            h.onsuccess = function (a) {
                                b && b(null, a.target.result)
                            };
                            h.onerror = function () {
                                b && b({code: 1})
                            }
                        }
                    }), add: b(function (a, b) {
                        var c = this, d = arguments;
                        this.OB(function () {
                            c.jba.apply(c, d)
                        }, b)
                    }), jba: b(function (a, b) {
                        function c() {
                            0 === --f && b(null)
                        }

                        e.isArray(a) || (a = [a]);
                        var d = a.length, f =
                            d, h = 0, k = Math.ceil(d / 5), l = setInterval(function () {
                            if (h++ < k) {
                                var e = 5 * h;
                                e > d && (e = d);
                                for (var f = m("readwrite", b), s = 5 * (h - 1); s < e; s++) {
                                    var D = f.put(a[s]);
                                    D.onsuccess = D.onerror = c
                                }
                            } else clearInterval(l)
                        }, 32)
                    }), remove: b(function (a, b) {
                        var c = this, d = arguments;
                        this.OB(function () {
                            c.xja.apply(c, d)
                        }, b)
                    }), xja: b(function (a, b) {
                        var c = m("readwrite", b);
                        e.isArray(a) || (a = [a]);
                        a = a.sort();
                        c.openCursor(d.bound(a[0], a[a.length - 1])).onsuccess = function (c) {
                            if (c = c.target.result) {
                                if (e.ka(c.value.tileKey, a)) c["delete"]();
                                for (var d = -1,
                                         f = 0, h = a.length; f < h; f++) if (a[f] > c.value.tileKey) {
                                    d = f;
                                    break
                                }
                                c["continue"](a[d])
                            } else b && b(null)
                        }
                    }), clear: b(function (a) {
                        var b = this, c = arguments;
                        this.OB(function () {
                            b.KF.apply(b, c)
                        }, a)
                    }), KF: b(function (a) {
                        var b = m("readwrite", a).clear();
                        b.onsuccess = function () {
                            a && a(null)
                        };
                        b.onerror = function () {
                            a && a({code: 2})
                        }
                    })
                }
            } else b.Gi = !1
        }
    })(window);
    (function () {
        function a(a) {
            u.data.keys = u.data.keys.filter(function (b) {
                return !r.ka(a, b)
            }).concat(a)
        }

        function b(a) {
            var b = g.A.Cj + "|" + a.Hi.replace(/\//g, ",") + "|" + (a.Af ? "w" : "v") + "|", c;
            c = a.ja;
            var d = a.pe;
            c = [c ? 1 : 0, q.ba ? 1 : 0, d ? 1 : 0].join();
            return b + c + "|" + m(a.url)
        }

        function c() {
            u.data.keys.length >= u.xL && d()
        }

        function d() {
            var a = u.data.keys.length, b = Math.floor(a / 2);
            a > u.xL && (b = Math.floor(a - u.xL / 2));
            a = u.data.keys.slice(0, b);
            u.data.keys = u.data.keys.slice(b + 1);
            s.remove(a, function (a) {
                a && 3 === a.code && (q.Gi = !1)
            })
        }

        function e() {
            var a =
                0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : r.Bs;
            k();
            w.setItem(u.key, u.data, !0);
            f(a)
        }

        function f(a) {
            q.Gi && s && s.clear(function (b) {
                b && 3 === b.code && (q.Gi = !1);
                a()
            })
        }

        function h() {
            k();
            var a = w.getItem(u.key, !0);
            a && (a.aL === u.data.aL && a.l1 === u.data.l1 ? u.data = a : e())
        }

        function k() {
            u.data = {aL: q.Gf, l1: g.A.Cj, keys: [], xf: {}, ln: {}};
            u.Zs = {}
        }

        function l(a) {
            a && (u.data.aL = a, q.Gf = a)
        }

        function m(a) {
            var b = "limg";
            /flds=([^&]+)/.test(a) && (b = RegExp.$1);
            return b
        }

        function n(a) {
            if ("object" === typeof a && null !== a) {
                var b = [];
                if (r.isArray(a)) if (Object.keys(a).length == a.length) b = a.map(function (a) {
                    return n(a)
                }); else {
                    b.push("__arrayObject");
                    var c = {}, d;
                    for (d in a) (0 > parseInt(d) || isNaN(parseInt(d))) && a.hasOwnProperty(d) && (c[d] = n(a[d]));
                    b.push(c);
                    b.push(a.map(function (a) {
                        return n(a)
                    }))
                } else if (r.dk(a, "Float32Array")) b.push("__Float32Array"), b.push(Array.prototype.slice.call(a)); else if (r.dk(a, "Uint16Array")) b.push("__Uint16Array"), b.push(Array.prototype.slice.call(a)); else for (d in b = {}, a) a.hasOwnProperty(d) && (b[d] = n(a[d]));
                return b
            }
            return a
        }

        function p(a) {
            if ("object" === typeof a && null !== a) {
                var b = {};
                if (r.isArray(a)) if ("__Float32Array" === a[0]) b = new Float32Array(a[1]); else if ("__Uint16Array" === a[0]) b = new Uint16Array(a[1]); else if ("__arrayObject" === a[0]) {
                    b = p(a[2]);
                    a = a[1];
                    for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c])
                } else b = a.map(function (a) {
                    return p(a)
                }); else for (c in a) a.hasOwnProperty(c) && (b[c] = p(a[c]));
                return b
            }
            return a
        }

        var q = g.l, r = g.a;
        if (!g.Hj && q.Gi) {
            var s = g.indexedDB, u = {xL: 1E3, key: "_AMap_data.tileKeys"}, v = [], w = {
                getItem: function (a,
                                   b) {
                    var c = localStorage.getItem(a);
                    if (c && b) {
                        var d;
                        try {
                            d = JSON.parse(c)
                        } catch (e) {
                            d = null
                        }
                        c = d
                    }
                    return c
                }, setItem: function (a, b, c) {
                    var d = b;
                    c && (d = JSON.stringify(b), 1.5 < d.length / 1024 / 1024 && Object.keys(b.ln).length && (b.ln = {}, d = JSON.stringify(b)));
                    try {
                        localStorage.setItem(a, d)
                    } catch (f) {
                        e()
                    }
                }
            };
            g.Hj = {
                clear: e, get: function (c, d) {
                    function f(a) {
                        var b = {MR: l, T5: G, LEa: w, xf: u.data.xf};
                        a && B.length && (/\|limg/.test(B[0]) ? b.z5 = a.map(function (a) {
                            return JSON.parse(a.data)
                        }).filter(function (a) {
                            return a && a.key
                        }) : b.Kc = h(a));
                        d && d(null,
                            b);
                        w.length && (l = [], G = [])
                    }

                    function h(a) {
                        var b = [];
                        m(c.url).split(",").forEach(function (c) {
                            a.forEach(function (a) {
                                if (a = JSON.parse(a.data[c])) {
                                    var d = a.yg;
                                    a.yg = new g.Uq(d.z, d.x, d.y);
                                    a.yg.S = d.S;
                                    b.push(a)
                                }
                            })
                        });
                        return b
                    }

                    var k = "FS" === c.type;
                    if (!q.ss || !(k || q.Gi && 0 !== u.data.keys.length)) return d({code: 1});
                    var l = [], w = [], B = [], G = [], H = [];
                    c.uxa.forEach(function (a) {
                        var d = !1, e = b({Hi: a.key, url: c.url, Af: c.Af, ja: c.o.ja, pe: c.pe});
                        k && (v.push(e), u.data.ln[e] && (l.push(a), B.push(e), H.push({
                            data: p(u.data.ln[e]),
                            tileKey: e
                        }),
                            d = !0));
                        d || (q.Gi && r.ka(u.data.keys, e) ? (B.push(e), w.push(a)) : G.push(a))
                    });
                    if (k && 0 === w.length || 0 === B.length) return f(H);
                    k && H.length && H.forEach(function (a) {
                        a = r.indexOf(B, a.tileKey);
                        B.splice(a, 1)
                    });
                    s.get(B, {timeout: c.timeout || 1E3}, function (b, c) {
                        if (b || c.length !== B.length) b && 3 === b.code ? q.Gi = !1 : e(), G = w, w = [], f(null); else {
                            if (k) for (var d = c.length - 1; 0 <= d; d--) {
                                var h = c[d];
                                h && h.data ? u.data.ln[h.tileKey] = n(h.data) : G.push(w.splice(d, 1)[0])
                            }
                            l = w;
                            w = [];
                            f(c);
                            a(B)
                        }
                    });
                    (G.length || w.length) && f(H)
                }, dw: function (a) {
                    a.Eb.forEach(function (c) {
                        c =
                            b({Hi: c.key, url: a.url, Af: a.Af, ja: a.o.ja, pe: a.pe});
                        u.Zs[c] && delete u.Zs[c]
                    })
                }, set: function (a, c) {
                    a.Gf && a.Gf !== u.data.aL && (l(a.Gf), e(), c && c({code: 2}));
                    !a.pd && a.Kc ? a.Kc.forEach(function (c) {
                        var d = b({Hi: c.Hi, url: a.url, Af: a.Af, ja: a.o.ja, pe: a.pe});
                        if (q.Gi || r.ka(v, d)) {
                            var e = u.Zs[d] || {};
                            e[c.vd] = c.Na;
                            u.Zs[d] = e
                        }
                    }) : a.data && a.data.forEach(function (c) {
                        var d = b({Hi: c.key, url: a.url, Af: a.Af, ja: a.o.ja, pe: a.pe});
                        if (q.Gi || r.ka(v, d)) u.Zs[d] = c.data
                    });
                    u.data.xf = {"x-vd-v": a["x-vd-v"], tv: a.tv, bgc: a.bgc}
                }, flush: function () {
                    var a =
                        !0;
                    return function () {
                        var b = this;
                        if (a) {
                            if (Object.keys(u.data.ln).length) for (var c in u.data.ln) u.data.ln.hasOwnProperty(c) && !r.ka(v, c) && delete u.data.ln[c];
                            q.Gi ? s.count(function (a, c) {
                                a || (c !== u.data.keys.length ? (u.data.keys.length && (u.data.keys = []), f(function () {
                                    b.$F(!0)
                                })) : b.$F(!0))
                            }) : b.$F(!0);
                            a = !1
                        } else b.$F()
                    }
                }(), $F: function () {
                    var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : !1, b = {}, d = [],
                        f = Object.keys(u.Zs), h = [];
                    f.length ? (f.forEach(function (a) {
                        var c = u.Zs[a];
                        a.split("|").pop().split(",").every(function (a) {
                            return "limg" ===
                            a ? !0 : c && void 0 !== c[a]
                        }) ? (r.ka(u.data.keys, a) || (h.push(a), d.push({
                            tileKey: a,
                            data: c
                        })), r.ka(v, a) && void 0 === u.data.ln[a] && (u.data.ln[a] = c)) : b[a] = c
                    }), d.length && (q.Gi ? s.add(d, function (a) {
                        a ? 3 !== a.code ? e() : q.Gi = !1 : (u.data.keys = u.data.keys.concat(h), w.setItem(u.key, u.data, !0), c())
                    }) : w.setItem(u.key, u.data, !0)), u.Zs = b) : (a && w.setItem(u.key, u.data, !0), c())
                }
            };
            h()
        }
    })();
    g.U = g.aa.extend({
        r: function (a, b, c) {
            var d = parseFloat(b), e = parseFloat(a);
            if (isNaN(a) || isNaN(b)) throw"Invalid Object: LngLat(" + e + ", " + d + ")";
            !0 !== c && (d = Math.max(Math.min(d, 90), -90), e = (e + 180) % 360 + (-180 > e || 180 === e ? 180 : -180));
            this.P = d;
            this.Q = e
        }, dR: function () {
            return g.a.hc(this.Q, 6)
        }, $Q: function () {
            return g.a.hc(this.P, 6)
        }, add: function (a, b) {
            return new g.U(this.Q + a.Q, this.P + a.P, b)
        }, $a: function (a, b) {
            return new g.U(this.Q - a.Q, this.P - a.P, b)
        }, ed: function (a, b) {
            return new g.U(this.Q / a, this.P / a, b)
        }, Kd: function (a,
                         b) {
            return new g.U(this.Q * a, this.P * a, b)
        }, we: function (a) {
            return g.Vq.distance(this, a)
        }, offset: function (a, b) {
            if (isNaN(a) || isNaN(b)) return !1;
            var c = 2 * Math.asin(Math.sin(Math.round(a) / 12756274) / Math.cos(this.P * Math.PI / 180)),
                c = this.Q + 180 * c / Math.PI, d = 2 * Math.asin(Math.round(b) / 12756274);
            return new g.U(c, this.P + 180 * d / Math.PI)
        }, cb: function (a) {
            a = g.a.Ia(a);
            return a instanceof g.U ? 1E-9 >= Math.max(Math.abs(this.P - a.P), Math.abs(this.Q - a.Q)) : !1
        }, toString: function () {
            return g.a.hc(this.Q, 6) + "," + g.a.hc(this.P, 6)
        }, pl: function () {
            return [this.Q,
                this.P]
        }, lb: function () {
            var a = this.controlPoints, b = new g.U(this.Q, this.P);
            a && (b.controlPoints = [].concat(a));
            return b
        }
    });
    g.U.Lpa = function (a, b, c) {
        c = c + 1 || Math.round(Math.abs(a.Q - b.Q));
        if (!c || 0.001 > Math.abs(a.Q - b.Q)) return [];
        var d = [], e = Math.PI, f = g.Fm.xu, h = g.Fm.ava, k = Math.asin, l = Math.sqrt, m = Math.sin, n = Math.pow,
            p = Math.cos, q = Math.atan2, r = a.P * f;
        a = a.Q * f;
        var s = b.P * f;
        b = b.Q * f;
        for (var k = 2 * k(l(n(m((r - s) / 2), 2) + p(r) * p(s) * n(m((a - b) / 2), 2))), u, v, w, t, f = 1; f < c; f += 1) u = 1 / c * f, v = m((1 - u) * k) / m(k), w = m(u * k) / m(k), u = v * p(r) * p(a) + w * p(s) * p(b), t = v * p(r) * m(a) + w * p(s) * m(b), v = v * m(r) + w * m(s), v = q(v, l(n(u, 2) + n(t, 2))), u = q(t, u), b > a ? (u < a && (u += 2 * e), u > b && (u -= 2 * e)) :
            (u > a && (u -= 2 * e), u < b && (u += 2 * e)), d.push(new g.U(u * h, v * h, !0));
        return d
    };
    g.U.Ob({
        dR: "getLng",
        $Q: "getLat",
        add: "add",
        $a: "subtract",
        ed: "divideBy",
        Kd: "multiplyBy",
        we: "distance",
        offset: "offset",
        cb: "equals",
        toString: "toString"
    });
    g.re = g.aa.extend({
        r: function () {
            this.CLASS_NAME = "AMap.Bounds";
            var a = null, b = null;
            if (1 === arguments.length && arguments[0] instanceof Array) a = new g.U(arguments[0][0], arguments[0][1], !0), b = new g.U(arguments[0][2], arguments[0][3], !0); else if (2 === arguments.length) a = g.a.Ia(arguments[0]), b = g.a.Ia(arguments[1]); else if (4 === arguments.length) a = new g.U(arguments[0], arguments[1]), b = new g.U(arguments[2], arguments[3]); else if (0 === arguments.length) a = new g.U(-180, -90), b = new g.U(180, 90); else throw"Invalid Object: Bounds(" +
            arguments.join(",") + ")";
            this.sc = a;
            this.kc = b
        }, Ru: function () {
            return this.sc
        }, ty: function () {
            return this.kc
        }, Yj: function () {
            return new g.U(this.sc.Q, this.kc.P, !0)
        }, Co: function () {
            return new g.U(this.kc.Q, this.sc.P, !0)
        }, contains: function (a) {
            var b = this.sc, c = this.kc, d;
            if (a instanceof g.dp) return this.CU().contains(a);
            a instanceof g.re ? (d = a.sc, a = a.kc) : d = a = g.a.Ia(a);
            var e = d.Q, f = b.Q, h = a.Q, k = c.Q;
            f > k && (k += 360, 0 > e && (e += 360), 0 > h && (h += 360));
            return d.P >= b.P && a.P <= c.P && e >= f && h <= k
        }, Ng: function (a) {
            var b = this.sc, c = this.kc,
                d = a.sc;
            a = a.kc;
            var e = a.Q >= b.Q && d.Q <= c.Q;
            return a.P >= b.P && d.P <= c.P && e
        }, ri: function () {
            return new g.U(this.sc.Q > this.kc.Q ? (this.sc.Q + this.kc.Q + 360) / 2 % 360 : (this.sc.Q + this.kc.Q) / 2, (this.sc.P + this.kc.P) / 2)
        }, extend: function (a) {
            this.sc.Q = Math.min(this.sc.Q, a.Q);
            this.sc.P = Math.min(this.sc.P, a.P);
            this.kc.Q = Math.max(this.kc.Q, a.Q);
            this.kc.P = Math.max(this.kc.P, a.P);
            return this
        }, qya: function (a) {
            return this.extend(a.sc).extend(a.kc)
        }, toString: function () {
            return this.sc.toString() + ";" + this.kc.toString()
        }, lb: function () {
            return new g.re(this.sc.lb(),
                this.kc.lb())
        }, cb: function (a) {
            return a instanceof g.re ? this.sc.cb(a.sc) && this.kc.cb(a.kc) : !1
        }, pj: function () {
            return Math.abs(this.kc.Q - this.sc.Q)
        }, nj: function () {
            return Math.abs(this.sc.P - this.kc.P)
        }, CU: function (a) {
            var b = [this.Ru(), this.Co(), this.ty(), this.Yj()];
            a && b.push(this.Ru());
            return new g.dp(b)
        }, yxa: function (a) {
            return new g.Jf(a.lc(this.Yj(), 20), a.lc(this.Co(), 20))
        }, WQ: function (a, b) {
            return this.CU(b).WQ(a)
        }, TQ: function (a) {
            return this.yxa(a).ri()
        }
    });
    g.re.Ob({
        Ru: "getSouthWest",
        ty: "getNorthEast",
        Yj: "getNorthWest",
        Co: "getSouthEast",
        contains: "contains",
        Ng: "intersects",
        ri: "getCenter",
        extend: "extend"
    });
    g.G = g.aa.extend({
        r: function (a, b, c) {
            if (isNaN(a) || isNaN(b)) throw"Invalid Object: Pixel(" + a + ", " + b + ")";
            this.x = c ? Math.round(a) : Number(a);
            this.y = c ? Math.round(b) : Number(b)
        }, jf: function () {
            return this.x
        }, je: function () {
            return this.y
        }, add: function (a, b) {
            return new g.G(this.x + a.x, this.y + a.y, b)
        }, $a: function (a, b) {
            return new g.G(this.x - a.x, this.y - a.y, b)
        }, ed: function (a, b) {
            return new g.G(this.x / a, this.y / a, b)
        }, Kd: function (a, b) {
            return new g.G(this.x * a, this.y * a, b)
        }, we: function (a) {
            var b = a.x - this.x;
            a = a.y - this.y;
            return Math.sqrt(b *
                b + a * a)
        }, floor: function () {
            return new g.G(Math.floor(this.x), Math.floor(this.y))
        }, round: function () {
            return new g.G(this.x, this.y, !0)
        }, cb: function (a) {
            return a instanceof g.G && this.x === a.x && this.y === a.y
        }, lb: function (a) {
            return new g.G(this.x, this.y, a)
        }, toString: function () {
            return this.x + "," + this.y
        }, pl: function () {
            return [this.x, this.y]
        }, length: function () {
            return Math.sqrt(this.x * this.x + this.y * this.y)
        }, direction: function () {
            var a = this.x, b = this.y;
            if (0 === a && 0 === b) return null;
            if (0 === a) return 0 < b ? 90 : 270;
            var c = 180 *
                Math.atan(b / a) / Math.PI;
            return 0 > a && 0 < b ? c + 180 : 0 > a && 0 > b ? c + 180 : 0 < a && 0 > b ? c + 360 : c
        }, tu: function (a) {
            var b = this.length(), c = a.length();
            return b && c ? 180 * Math.acos((this.x * a.x + this.y * a.y) / c / b) / Math.PI : null
        }, xna: function (a) {
            var b = this.length(), c = a.length();
            return b && c ? (this.x * a.x + this.y * a.y) / c / b : null
        }, toFixed: function (a) {
            this.x = g.a.hc(this.x, a);
            this.y = g.a.hc(this.y, a);
            return this
        }
    });
    g.G.Ob({
        jf: "getX",
        je: "getY",
        add: "add",
        $a: "subtract",
        ed: "divideBy",
        Kd: "multiplyBy",
        we: "distance",
        cb: "equals",
        toString: "toString"
    });
    g.xd = g.aa.extend({
        r: function (a, b, c) {
            if (isNaN(a) || isNaN(b)) throw"Invalid Object: Size(" + a + ", " + b + ")";
            this.width = c ? Math.round(a) : Number(a);
            this.height = c ? Math.round(b) : Number(b)
        }, lb: function () {
            return new g.xd(this.width, this.height)
        }, pj: function () {
            return this.width
        }, nj: function () {
            return this.height
        }, uE: function () {
            return new g.G(this.pj(), this.nj())
        }, contains: function (a) {
            return Math.abs(a.x) <= Math.abs(this.width) && Math.abs(a.y) <= Math.abs(this.height)
        }, cb: function (a) {
            return a instanceof g.xd && this.width ===
                a.width && this.height === a.height
        }, toString: function () {
            return this.pj() + "," + this.nj()
        }
    });
    g.xd.Ob({pj: "getWidth", nj: "getHeight", toString: "toString"});
    g.dp = g.aa.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.ArrayBounds";
            a = g.a.Ia(a);
            this.path = [];
            for (var b = 0; b < a.length; b += 1) this.path.push([a[b].Q, a[b].P]);
            this.bounds = this.Xd = a
        }, contains: function (a, b) {
            if (a instanceof g.dp) return g.Vq.isRingInRing(a.path, this.path);
            a instanceof g.G ? a = [a.x, a.y] : a instanceof g.U && (a = [a.Q, a.P]);
            return g.wd.Rd(a, this.path, b)
        }, toBounds: function () {
            for (var a = new g.re(180, 90, -180, -90), b = this.Xd.length - 1; 0 <= b; b -= 1) a.extend(this.Xd[b]);
            return a
        }, WQ: function (a) {
            for (var b = [], c = 0; c <
            this.path.length; c += 1) b[c] = a.lc(this.path[c], 20);
            return b
        }, TQ: function (a) {
            return this.toBounds().TQ(a)
        }, ri: function () {
            return this.toBounds().ri()
        }
    });
    g.dp.Ob({contains: "contains", ri: "getCenter"});
    g.k$ = g.dp.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.CoordsBounds";
            this.path = a;
            if (a[0] instanceof g.G) {
                this.path = [];
                for (var b = 0; b < a.length; b += 1) this.path.push([a[b].x, a[b].y])
            }
            this.bounds = this.Xd = a
        }
    });
    g.Jf = g.aa.extend({
        r: function () {
            if (2 === arguments.length) this.Zb = arguments[0], this.Jd = arguments[1]; else if (1 === arguments.length && arguments[0] instanceof Array || 4 === arguments.length) {
                var a = arguments[0] instanceof Array ? arguments[0] : arguments;
                this.Zb = new g.G(a[0], a[1]);
                this.Jd = new g.G(a[2], a[3])
            } else throw"Invalid Object: PixelBounds(" + arguments.join(",") + ")";
        }, ri: function (a) {
            return new g.G((this.Zb.x + this.Jd.x) / 2, (this.Zb.y + this.Jd.y) / 2, a)
        }, contains: function (a) {
            var b;
            a instanceof g.Jf ? (b = a.Zb, a = a.Jd) :
                b = a;
            return b.x > this.Zb.x && a.x < this.Jd.x && b.y > this.Zb.y && a.y < this.Jd.y
        }, pj: function () {
            return this.Jd.x - this.Zb.x
        }, nj: function () {
            return this.Jd.y - this.Zb.y
        }, Ng: function (a, b) {
            b || 0 === b || (b = 20);
            var c = this.Zb, d = this.Jd, e = a.Zb, f = a.Jd, h = f.y >= c.y - b && e.y <= d.y + b;
            return f.x >= c.x - b && e.x <= d.x + b && h
        }, toString: function () {
            return this.Zb + ";" + this.Jd
        }, lb: function () {
            return new g.Jf(this.Zb.lb(), this.Jd.lb())
        }
    });
    g.I = {};
    g.I.rP = function (a) {
        for (var b = [Infinity, Infinity, -Infinity, -Infinity], c = 0, d = a.length; c < d; c += 1) g.I.mI(b, a[c]);
        return b
    };
    g.I.w1 = function (a, b, c) {
        var d = Math.min.apply(null, a);
        a = Math.max.apply(null, a);
        var e = Math.min.apply(null, b);
        b = Math.max.apply(null, b);
        return g.I.tna(d, a, e, b, c)
    };
    g.I.buffer = function (a, b) {
        a[0] -= b;
        a[1] -= b;
        a[2] += b;
        a[3] += b
    };
    g.I.lb = function (a) {
        return a.slice()
    };
    g.I.Rd = function (a, b) {
        return a[0] <= b[0] && b[0] <= a[2] && a[1] <= b[1] && b[1] <= a[3]
    };
    g.I.k2 = function (a, b) {
        return a[0] <= b[0] && b[2] <= a[2] && a[1] <= b[1] && b[3] <= a[3]
    };
    g.I.iCa = function () {
        return [Infinity, Infinity, -Infinity, -Infinity]
    };
    g.I.tna = function (a, b, c, d, e) {
        return "undefined" !== typeof e ? (e[0] = a, e[2] = b, e[1] = c, e[3] = d, e) : [a, c, b, d]
    };
    g.I.empty = function (a) {
        a[0] = a[1] = Infinity;
        a[2] = a[3] = -Infinity;
        return a
    };
    g.I.cb = function (a, b) {
        return a[0] === b[0] && a[2] === b[2] && a[1] === b[1] && a[3] === b[3]
    };
    g.I.extend = function (a, b) {
        b[0] < a[0] && (a[0] = b[0]);
        b[2] > a[2] && (a[2] = b[2]);
        b[1] < a[1] && (a[1] = b[1]);
        b[3] > a[3] && (a[3] = b[3])
    };
    g.I.mI = function (a, b) {
        b[0] < a[0] && (a[0] = b[0]);
        b[0] > a[2] && (a[2] = b[0]);
        b[1] < a[1] && (a[1] = b[1]);
        b[1] > a[3] && (a[3] = b[1])
    };
    g.I.cDa = function (a) {
        return [a[0], a[1]]
    };
    g.I.dDa = function (a) {
        return [a[2], a[1]]
    };
    g.I.ri = function (a) {
        return [(a[0] + a[2]) / 2, (a[1] + a[3]) / 2]
    };
    g.I.pDa = function (a, b, c, d, e) {
        var f = b * d[0] / 2;
        d = b * d[1] / 2;
        b = Math.cos(c);
        c = Math.sin(c);
        f = [-f, -f, f, f];
        d = [-d, d, -d, d];
        var h, k, l;
        for (h = 0; 4 > h; h += 1) k = f[h], l = d[h], f[h] = a[0] + k * b - l * c, d[h] = a[1] + k * c + l * b;
        return g.I.w1(f, d, e)
    };
    g.I.nj = function (a) {
        return a[3] - a[1]
    };
    g.I.CDa = function (a) {
        return [a[2] - a[0], a[3] - a[1]]
    };
    g.I.GDa = function (a) {
        return [a[0], a[3]]
    };
    g.I.HDa = function (a) {
        return [a[2], a[3]]
    };
    g.I.pj = function (a) {
        return a[2] - a[0]
    };
    g.I.Ng = function (a, b) {
        return a[0] <= b[2] && a[2] >= b[0] && a[1] <= b[3] && a[3] >= b[1]
    };
    g.I.vi = function (a) {
        return a[2] < a[0] || a[3] < a[1]
    };
    g.I.normalize = function (a, b) {
        return [(b[0] - a[0]) / (a[2] - a[0]), (b[1] - a[1]) / (a[3] - a[1])]
    };
    g.I.kGa = function (a, b) {
        var c = (a[2] - a[0]) / 2 * (b - 1), d = (a[3] - a[1]) / 2 * (b - 1);
        a[0] -= c;
        a[2] += c;
        a[1] -= d;
        a[3] += d
    };
    g.I.touches = function (a, b) {
        return g.I.Ng(a, b) && (a[0] === b[2] || a[2] === b[0] || a[1] === b[3] || a[3] === b[1])
    };
    g.I.transform = function (a, b, c) {
        a = [a[0], a[1], a[0], a[3], a[2], a[1], a[2], a[3]];
        b(a, a, 2);
        return g.I.w1([a[0], a[2], a[4], a[6]], [a[1], a[3], a[5], a[7]], c)
    };
    g.re.zb({
        r: function () {
            var a = g.re.prototype.r;
            return function () {
                a.apply(this, arguments);
                this.southwest = this.sc;
                this.northeast = this.kc
            }
        }(), extend: function () {
            var a = g.re.prototype.extend;
            return function () {
                a.apply(this, arguments);
                this.sc.lng = this.sc.Q;
                this.sc.lat = this.sc.P;
                this.kc.lng = this.kc.Q;
                this.kc.lat = this.kc.P;
                return this
            }
        }()
    });
    g.U.zb({
        r: function () {
            var a = g.U.prototype.r;
            return function () {
                a.apply(this, arguments);
                this.lng = parseFloat(this.Q.toFixed(6));
                this.lat = parseFloat(this.P.toFixed(6))
            }
        }()
    });
    g.rF = g.aa.extend({
        r: function (a, b, c, d) {
            this.EW = a;
            this.UW = b;
            this.hX = c;
            this.DX = d
        }, transform: function (a, b) {
            return this.N0(a.lb(), b)
        }, N0: function (a, b) {
            b = b || 1;
            a.x = b * (this.EW * a.x + this.UW);
            a.y = b * (this.hX * a.y + this.DX);
            return a
        }, sya: function (a, b) {
            b = b || 1;
            return new g.G((a.x / b - this.UW) / this.EW, (a.y / b - this.DX) / this.hX)
        }
    });
    g.ip = g.aa.extend({
        r: function (a) {
            this.wL = a.MAX_LATITUDE || 85.0511287798;
            a.project && a.unproject && (this.lc = a.project, this.Uh = a.unproject)
        }
    });
    g.ip.QV = {
        lc: function (a) {
            return new g.G(a.Q, a.P)
        }, Uh: function (a, b) {
            return new g.U(a.x, a.y, b)
        }
    };
    g.ip.uaa = new g.ip({
        MAX_LATITUDE: 85.0511287798, project: function (a) {
            var b = Math.PI / 180, c = this.wL, c = Math.max(Math.min(c, a.P), -c);
            a = a.Q * b;
            b = Math.log(Math.tan(Math.PI / 4 + c * b / 2));
            return new g.G(a, b, !1)
        }, unproject: function (a, b) {
            var c = 180 / Math.PI;
            return new g.U(a.x * c, (2 * Math.atan(Math.exp(a.y)) - Math.PI / 2) * c, b)
        }
    });
    g.ip.VV = {
        wL: 85.0840591556, IL: 6356752.3142, HL: 6378137, lc: function (a) {
            var b = Math.PI / 180, c = this.wL, d = Math.max(Math.min(c, a.P), -c), e = this.HL, c = this.IL;
            a = a.Q * b * e;
            b *= d;
            e = c / e;
            e = Math.sqrt(1 - e * e);
            d = e * Math.sin(b);
            d = Math.pow((1 - d) / (1 + d), 0.5 * e);
            b = Math.tan(0.5 * (0.5 * Math.PI - b)) / d;
            b = -c * Math.log(b);
            return new g.G(a, b)
        }, Uh: function (a, b) {
            for (var c = 180 / Math.PI, d = this.HL, e = this.IL, f = a.x * c / d, d = e / d, d = Math.sqrt(1 - d * d), e = Math.exp(-a.y / e), h = Math.PI / 2 - 2 * Math.atan(e), k = 15, l = 0.1; 1E-7 < Math.abs(l) && (k -= 1, 0 < k);) l = d * Math.sin(h),
                l = Math.PI / 2 - 2 * Math.atan(e * Math.pow((1 - l) / (1 + l), 0.5 * d)) - h, h += l;
            return new g.U(f, h * c, b)
        }
    };
    g.Xh = {};
    g.Xh.WE = {
        pD: function (a, b) {
            var c = this.Bf.lc(a), d = this.scale(b);
            return this.zE.N0(c, d)
        }, RD: function (a, b, c) {
            b = this.scale(b);
            a = this.zE.sya(a, b);
            return this.Bf.Uh(a, c)
        }, lc: function (a) {
            return this.Bf.lc(a)
        }, scale: function (a) {
            return 256 << a
        }, Up: function (a) {
            return 12756274 * Math.PI / (256 * Math.pow(2, a))
        }
    };
    g.Xh.mL = g.extend({}, g.Xh.WE, {
        code: "EPSG:3857",
        Bf: g.ip.uaa,
        zE: new g.rF(0.5 / Math.PI, 0.5, -0.5 / Math.PI, 0.5),
        lc: function (a) {
            return this.Bf.lc(a).Kd(6378137)
        }
    });
    g.Xh.AV = g.extend({}, g.Xh.WE, {
        code: "EPSG:3395", Bf: g.ip.VV, zE: function () {
            var a = g.ip.VV;
            return new g.rF(0.5 / (Math.PI * a.HL), 0.5, -0.5 / (Math.PI * a.IL), 0.5)
        }()
    });
    g.Xh.BV = g.extend({}, g.Xh.WE, {code: "EPSG:4326", Bf: g.ip.QV, zE: new g.rF(1 / 360, 0.5, -1 / 360, 0.25)});
    g.Xh.Wza = g.extend({}, g.Xh.WE, {Bf: g.ip.QV, zE: new g.rF(1, 0, 1, 0)});
    g.tJ = {
        lc: function (a, b) {
            a = g.a.Ia(a);
            return this.hj.pD(a, b || this.get("zoom"))
        }, Uh: function (a, b, c) {
            return this.hj.RD(a, b || this.get("zoom"), c)
        }, gsa: function (a, b) {
            return this.lc(a, b)
        }, $Ca: function (a, b) {
            return this.Uh(a, b)
        }, Hp: function (a, b, c) {
            g.c.add(this, "containerToLngLat");
            var d = this.get("size").uE().ed(2);
            if (a.cb(d) && !c) return this.get("center");
            a = this.qg(a, b, c);
            return this.Ld(a)
        }, qs: function (a, b) {
            g.c.add(this, "lngLatToContainer");
            var c = 0;
            b && (c = "string" === typeof b ? Math.round(parseFloat(b) / 0.14929107086948487) :
                b);
            var d = this.Ab(a);
            return this.ce(d, null, c)
        }, Ab: function (a) {
            a = g.a.Ia(a);
            return this.lc(a, 20)
        }, Ld: function (a) {
            return a ? this.Uh(a, 20) : a
        }, pJ: function (a) {
            a = g.a.Ia(a);
            return this.lc(a, 20).$a(g.a.ac)
        }, A5: function (a, b) {
            b || (a = g.a.Ia(a));
            var c = [], d = !1;
            void 0 === a[0].length && (d = !0);
            for (var c = [], e = 0, f = a.length; e < f; e += 1) if (d) {
                var h = this.lc(a[e], 20).$a(g.a.ac);
                c[e] = [h.x, h.y]
            } else c[e] = this.A5(a[e], !0);
            return c
        }, jpa: function (a) {
            return this.Uh(a.add(g.a.ac), 20)
        }, aDa: function (a) {
            return this.ce(a.add(g.a.ac))
        }, iDa: function (a) {
            return a ?
                this.lc(this.get("center"), a) : this.get("centerPixel")
        }, EAa: function (a) {
            return (new g.G(a.x + 2.0037508342789244E7, 2.0037508342789244E7 - a.y)).ed(0.14929107086948487)
        }, A6: function (a) {
            return new g.G(0.14929107086948487 * a.x - 2.0037508342789244E7, 2.0037508342789244E7 - 0.14929107086948487 * a.y)
        }
    };
    z.uF = g.aa.extend({
        ka: [g.va, g.Re],
        B: {center: new g.U(116.397128, 39.916527), zoom: 13, rotation: 0, crs: "EPSG3857"},
        r: function (a) {
            this.CLASS_NAME = "AMap.View2D";
            g.c.xa(this, a);
            a = a || {};
            a.center && (a.center = g.a.Ia(a.center));
            this.B = a
        }
    });
    z.Kb = g.aa.extend({
        ka: [g.va, g.Re, g.tJ], B: {
            features: "all",
            showLabel: !0,
            dragEnable: !0,
            showIndoorMap: g.l.ba ? !1 : !0,
            lang: "zh_cn",
            keyboardEnable: !0,
            doubleClickZoom: !0,
            gridMapForeign: !1,
            scrollWheel: !0,
            zoomEnable: !0,
            jogEnable: !0,
            continuousZoomEnable: !0,
            resizeEnable: !1,
            animateEnable: !0,
            rotateEnable: !1,
            labelzIndex: 99,
            showFog: !0,
            touchZoom: !0,
            zooms: [3, g.l.ba ? g.l.Mc ? 19 : 20 : 18],
            defaultCursor: "",
            limitBounds: null,
            logoUrl: g.A.yb + "/theme/v1.3/logo@1x.png",
            logoUrlRetina: g.A.yb + "/theme/v1.3/logo@2x.png",
            copyright: "\x3c!--v1.4.13--\x3e &copy " +
                (new Date).getFullYear() + " AutoNavi ",
            isHotspot: !g.l.ba,
            baseRender: g.l.p1,
            overlayRender: g.l.aua,
            mapStyle: "normal",
            showBuildingBlock: g.l.Af,
            crs: "EPSG3857",
            rotation: 0,
            pitch: 0,
            yaw: 0,
            scale: 1,
            center: new g.U(116.397128, 39.916527),
            zoom: 13,
            detectRetina: !0,
            pitchEnable: !1,
            buildingAnimation: !1,
            maxPitch: 83,
            turboMode: !0,
            preloadMode: !0,
            workerMode: !0
        }, poiOnAMAP: function (a) {
            g.c.add(this, "poiOnAMAP");
            var b = {}, c = g.a.Ia(a.location);
            b.id = a.id;
            c && (b.y = c.P, b.x = c.Q);
            b.name = a.name;
            b.address = a.address;
            g.Yh.Xs(g.Yh.M3(b))
        },
        detailOnAMAP: function (a) {
            g.c.add(this, "detailOnAMAP");
            var b = {}, c = g.a.Ia(a.location);
            b.id = a.id;
            c && (b.y = c.P, b.x = c.Q);
            b.name = a.name;
            g.Yh.Xs(g.Yh.K3(b))
        }, setLabelzIndex: function (a) {
            g.c.add(this, "setLabelzIndex");
            return this.set("labelzIndex", a)
        }, getLabelzIndex: function () {
            return this.get("labelzIndex", null, !0)
        }, setMapStyle: function (a) {
            g.c.add(this, "setMapStyle");
            -1 === a.indexOf("amap://styles/") ? (this.set("styleUrl", "", !0), this.set("mapStyle", a)) : this.set("styleUrl", a);
            this.AS()
        }, getMapStyle: function () {
            return this.get("styleUrl") ||
                this.get("mapStyle", null, !0)
        }, getFeatures: function () {
            return this.get("features", null, !0)
        }, setFeatures: function (a) {
            g.c.add(this, "setFeatures");
            this.set("features", a)
        }, setLang: function (a) {
            g.c.add(this, "setLang", a);
            "en" !== a && "zh_cn" !== a && "zh_en" !== a || a === this.get("lang", null, !0) || (this.set("lang", a), this.bk && this.bk.E7(this))
        }, getLang: function () {
            return this.get("lang", null, !0)
        }, setCity: function (a, b) {
            g.c.add(this, "setCity");
            var c = this;
            (new g.fb.vb(g.A.Ud + "/v3/config/district?subdistrict=0&extensions=all&key=" +
                g.A.key + "&s=rsv3&output=json&keywords=" + a, {callback: "callback"})).h("complete", function (d) {
                var e = d.districts;
                if (e && e.length) {
                    d = e[0];
                    /[^\w]+/.test(a) && (e = g.a.find(e, function (b) {
                        return b.name === a
                    })) && e !== d && (d = e);
                    try {
                        var f = d.center.split(","), h;
                        switch (d.level) {
                            case "city":
                                h = 10;
                                break;
                            case "province":
                                h = 7;
                                break;
                            case "district":
                                h = 12;
                                break;
                            case "country":
                                h = 4;
                                break;
                            default:
                                h = 12
                        }
                        -1 !== d.name.indexOf("\u5e02") && (h = 10);
                        c.D = !0;
                        c.setZoomAndCenter(h, new g.U(f[0], f[1]), !0);
                        c.D = !1;
                        b && b.call(c, f, h)
                    } catch (k) {
                    }
                }
            }, this)
        },
        getScreenShot: function (a, b) {
            g.c.add(this, "getScreenShot");
            return this.map && g.l.Xk ? this.map.U3(a, b) : ""
        }, getCity: function (a, b) {
            g.c.add(this, "getCity");
            var c = g.A.Ud + "/v3/geocode/regeo?&extensions=&&key=" + g.A.key + "&s=rsv3&output=json&location=" + (b || this.get("center", null, !0));
            (new g.fb.vb(c, {callback: "callback", Lx: !0, vd: "REGEO"})).h("complete", function (b) {
                b = b.regeocode.addressComponent;
                a({
                    province: b.province,
                    city: b.city instanceof Array ? "" : b.city,
                    citycode: b.citycode instanceof Array ? "" : b.citycode,
                    district: b.district instanceof
                    Array ? "" : b.district
                })
            }, this)
        }, r: function (a, b) {
            b = g.extend({}, b);
            this.id = g.a.ub(this);
            this.CLASS_NAME = "AMap.Map";
            g.c.xa(this, b);
            this.D = !0;
            b = b || {};
            b.mapStyle && -1 !== b.mapStyle.indexOf("amap://styles/") ? (b.styleUrl = b.mapStyle, delete b.mapStyle) : b.styleUrl = "amap://styles/normal";
            b.bgColor && g.extend(g.A.ue, b.bgColor);
            b.maxPitch && (b.maxPitch = Math.min(this.B.maxPitch, Math.max(b.maxPitch, 0)));
            b.pitch && (b.pitch = Math.min(b.maxPitch || this.B.maxPitch, Math.max(b.pitch, 0)));
            "3D" !== b.viewMode && (b.pitch = 0);
            g.A.Dr =
                b.buildingColor || null;
            b.mobile && (g.l.ba = !0);
            b.noPoi && (g.A.kta = !0);
            b.editEnable = g.A.tQ ? b.editEnable : !1;
            b.editEnable && (b.nolimg = !0, b.showIndoorMap = !1);
            void 0 !== b.nolimg && (b.nolimg_param = b.nolimg);
            "3D" === b.viewMode && g.l.Eq && void 0 === b.showBuildingBlock && !0 === b.showBuildingBlock;
            this.aq = !!b.enableSocket;
            b.server && (g.A.Ud = b.server);
            b.vdataUrl && (g.A.$K = b.vdataUrl);
            if ("string" === typeof a) {
                if (a = this.K = document.getElementById(a), !a) return
            } else "DIV" === a.tagName && (this.K = a);
            if (this.K.dM) {
                var c = this.K.dM;
                c.D =
                    !0;
                c.destroy();
                c.D = !1
            }
            g.te.af.start({id: this.id, K: this.K});
            this.K.dM = this;
            var c = this.B.zooms[1], d = this.B.zooms[0];
            b.zooms ? (b.zooms[0] = Math.max(d, b.zooms[0]), !0 === b.expandZoomRange && (c = g.l.ba ? g.l.Mc ? 19 : 20 : 20), b.zooms[1] = Math.min(c, b.zooms[1])) : b.zooms = [d, c];
            b.forceZooms && (b.zooms = b.forceZooms);
            b = this.mma(b);
            c = this.getSize(!0);
            b.center && (b.center = g.a.Ia(b.center));
            this.hj = this.una(b.crs || this.B.crs, b.center || this.B.center);
            this.ula(c, b);
            d = b.lang;
            "en" !== d && "zh_cn" !== d && "zh_en" !== d && (b.lang = "zh_cn");
            g.j.jg || (b.rotation = 0, b.pitch = 0, b.rotateEnable = !1);
            g.l.kS ? !1 !== b.workerMode && (z.Kb.xt ? (b.workerMode = !1, z.Kb.xt++) : z.Kb.xt = 1) : (b.workerMode = !1, b.preloadMode = !1);
            b.layers && (d = b.layers, delete b.layers, b.layers = d);
            b.baseRender = b.baseRender || g.l.p1;
            b.forceVector && (b.baseRender = g.l.Af ? "vw" : "v");
            b.disableVector && (b.baseRender = "d");
            "dom" === b.renderer && (b.baseRender = "d", b.overlayRender = "d");
            c = Math.max(c.width, c.height);
            g.l.ja && (c *= Math.min(2, window.devicePixelRatio || 1));
            "vw" === b.baseRender && c > g.l.Lsa && (b.baseRender =
                "dv");
            "d" == b.baseRender && b.vectorMapForeign && (b.vectorMapForeign = !1, b.gridMapForeign = !0);
            g.a.Db(this, b);
            this.Ze(this.B);
            "rotateEnable" in b || "3D" !== b.viewMode || !g.l.Eq || this.set("rotateEnable", !0);
            "pitchEnable" in b || "3D" !== b.viewMode || !g.l.Eq || this.set("pitchEnable", !0);
            c = this.get("zoom", null, !0);
            d = this.get("zooms");
            c > d[1] ? c = d[1] : c < d[0] && (c = d[0]);
            this.set("zoom", c);
            this.B.zoom = c;
            this.wna(this.B);
            this.GP();
            var e = this;
            this.Ze({overlays: [], infos: {}, controls: {}});
            var f = [];
            (b.gridMapForeign || b.vectorMapForeign) &&
            f.push("gridmap");
            b.vectorMapForeign && g.l.ou && f.push("MVT", "vectorForeign");
            b.forceVector && (f.push("vectorlayer"), f.push("overlay"));
            "3D" === b.viewMode && g.l.Eq && f.push("Map3D");
            g.l.Xk && (b.vectorMapForeign || b.mapStyle || b.nolimg) && f.push("labelcanvas");
            b.editEnable && f.push("edit");
            g.l.Xk && (f.push("AMap.IndoorMap"), -1 !== f.indexOf("Map3D") && f.push("AMap.IndoorMap3D"));
            this.ja = g.l.ja && this.get("detectRetina");
            this.x9(b);
            this.D = !1;
            this.xsa(function () {
                g.qb.Rg(f, function () {
                    if (!e.get("destroy")) {
                        var b = new g.Kb(a,
                            e);
                        if (g.Le) {
                            var c = (g.Le[0] || g.Le).stylemaps["50001:1"].browserStyle[0].split("&");
                            b.DF = [c[0], c[4]]
                        }
                        b.Se("zoom center centerCoords rotation yaw pitch resolution".split(" "), e.view, !0);
                        b.h("complete", function () {
                            var a = {};
                            b.J && "3D" == b.J.type && (a.canvas = b.J.Ra, a.gl = b.J.ga);
                            this.q("complete", a)
                        }, e, !0);
                        b.hj = e.hj;
                        e.Se(["zoomSlow", "panTo", "targetLevel", "render"], b);
                        b.Se(["size", "bounds"], e);
                        e.loaded = !0;
                        e.q("coreMapCreated");
                        g.l.Xk && e.Wka();
                        e.D = !0;
                        "3D" === e.view.type && (e.AmbientLight || (e.AmbientLight = new g.yw.pV([1,
                            1, 1], 0.9)), e.DirectionLight || (e.DirectionLight = new g.yw.zV([0, -1, 1], [1, 1, 1], 0.1)));
                        e.D = !1
                    }
                })
            })
        }, xsa: function (a) {
            function b() {
                var a = AMap.anole, b = {}, c = [], d = 0, e = void 0;
                if (a) {
                    for (var a = a.replace(/\?/g, ":").replace(/\//g, "&"), e = a.split(""), a = 0, f = e.length; a < f; a++) void 0 === b[e[a]] && (b[e[a]] = d++, c.push(e[a]));
                    c.reverse();
                    d = 0;
                    for (a = e.length; d < a; d++) e[d] = c[b[e[d]]];
                    a = e.join("");
                    g.Le = eval(a);
                    delete AMap.anole
                }
            }

            if (g.l.ye || g.Le) a(); else {
                var c = !0;
                try {
                    var d = JSON.parse(localStorage.getItem("_AMap_anole"));
                    d && d.version ===
                    g.l.Gf && d.script ? eval(d.script) : c = !1
                } catch (e) {
                    c = !1
                }
                if (c) b(), a(); else {
                    var f = document.createElement("script");
                    f.kCa = "anonymous";
                    f.id = "amap_anole_js";
                    f.src = g.A.Fc + "://vdata.amap.com/style?v=" + g.A.ur + "&key=" + g.A.key + "&mapstyle=normal";
                    c = document;
                    (c.head || c.getElementsByTagName("head")[0] || c.body).appendChild(f);
                    f.onload = function () {
                        if (!g.Le) {
                            if (g.l.ss) try {
                                var c = {version: g.l.Gf, script: "AMap['anole']=" + JSON.stringify(AMap.anole)};
                                localStorage.setItem("_AMap_anole", JSON.stringify(c))
                            } catch (d) {
                            }
                            b()
                        }
                        a();
                        f.parentNode.removeChild(f)
                    }
                }
            }
        },
        getViewMode_: function () {
            return this.view.type
        }, ppa: function (a, b, c) {
            var d = new g.U(a[4], a[5]);
            if ((a = new g.re(a[0], a[1], a[2], a[3])) && b && d) {
                for (var e = c[1]; e > c[0]; e -= 1) {
                    var f = this.lc(a.sc, e), h = this.lc(a.kc, e);
                    if (Math.abs(h.x - f.x) < b.width && Math.abs(f.y - h.y) < b.height) break
                }
                return [d, Math.min(e + 1, c[1])]
            }
            return null
        }, ula: function (a, b) {
            if (!(b && b.center && b.zoom)) {
                var c = this.ppa(g.A.Xd, a, b.zooms);
                b.center = b.center || c && c[0];
                "number" !== typeof b.zoom && (b.zoom = c && c[1])
            }
        }, una: function (a, b) {
            if (b instanceof g.U) {
                if ("string" ===
                    typeof a) {
                    switch (a) {
                        case "EPSG3395":
                            return g.Xh.AV;
                        case "EPSG4326":
                            return g.Xh.BV
                    }
                    return g.Xh.mL
                }
                if (a.pointToLngLat && a.lngLatToPoint) return {
                    RD: a.pointToLngLat,
                    pD: a.lngLatToPoint,
                    Up: a.getResolution
                };
                throw"illegal projection";
            }
            var c = this.get("zoom", null, !0);
            return {
                Up: function (a) {
                    return Math.pow(2, c - a)
                }, pD: function () {
                }, RD: function () {
                }
            }
        }, Kwa: function (a, b) {
            this.Iw && this.Iw.stop();
            var c = ["pitch", "rotation", "zoom", "center"], d = {}, e = !1, f;
            for (f in a) if (a.hasOwnProperty(f) && -1 !== g.a.indexOf(c, f)) {
                var h = this.get(f);
                void 0 === h || h === a[f] || h.cb && h.cb(a[f]) || (d[f] = this.get(f), e = !0)
            }
            e && (this.Iw = new g.Dj(d, a, null, 0), this.Iw.transition = function (a, c, e) {
                e /= b || 300;
                if (1 <= e) return c;
                var f = {}, h;
                for (h in d) d.hasOwnProperty(h) && (f[h] = "center" === h ? a[h].add(c[h].$a(a[h]).Kd(e)) : a[h] + (c[h] - a[h]) * e);
                return f
            }, this.Iw.lq = function (b) {
                b === a && (this.Iw.stop(), this.Bd = null);
                for (var c in b) b.hasOwnProperty(c) && ("center" === c ? (this.D = !0, this.setCenter(b[c], !0), this.D = !1) : this.set(c, b[c]))
            }, this.Iw.Cn(this))
        }, wna: function (a) {
            "3D" === this.get("viewMode") &&
            g.l.Eq ? (this.set("baseRender", "vw"), this.view = new g.SL(this, a)) : this.view = new g.uF(this, a);
            this.D4()
        }, D4: function () {
            this.wi = "d" < this.get("baseRender") || "3D" === this.view.type
        }, featuresChanged: function () {
            this.GP()
        }, AS: function () {
            this.GP();
            this.hU()
        }, hU: function () {
            if (this.lm) {
                var a = !0;
                this.D = !0;
                var b = this.getMapStyle();
                if (!1 === this.get("showIndoorMap") || "normal" !== b && "amap://styles/normal" !== b) a = !1;
                b = this.getLayers();
                this.D = !1;
                for (var c in b) b.hasOwnProperty(c) && "AMap.IndoorMap" === b[c].CLASS_NAME && b[c] !==
                this.lm && (a = !1);
                this.lm.getMap() !== this && this.lm.setMap(this);
                this.lm.set("visible", a)
            }
        }, GP: function () {
            this.x9();
            if (this.view && "3D" !== this.view.type) {
                var a = this.get("baseRender");
                if (a && !("dv" < a)) {
                    var b = this.get("features", null, !0);
                    this.D = !0;
                    var c = this.getMapStyle();
                    this.D = !1;
                    var d = this.get("editEnable");
                    b && c && (g.l.ou && (d || "all" !== b || "normal" !== c && "amap://styles/normal" !== c) ? (this.set("baseRender", "v"), this.XS = a) : this.XS && (this.set("baseRender", this.XS), this.XS = null));
                    this.D4()
                }
            }
        }, Wka: function () {
            var a =
                this;
            !a.lm && a.K && (a.indoorMap = a.lm = new AMap.IndoorMap({innerLayer: !0}), a.hU(), g.a.Rc(function () {
                a.q("indoor_create", {target: a});
                a.set("display")
            }))
        }, layersChanged: function () {
            this.D = !0;
            var a = this.getLayers();
            this.EJ = this.D = !1;
            for (var b = 0; b < a.length; b += 1) a[b].D = !0, a[b].getMap() !== this && a[b].setMap(this), a[b].D = !1, a[b].EJ && (this.EJ = !0);
            this.hU()
        }, getMapNumber: function () {
            if (this.map) return this.map.YD()
        }, getAdcode: function () {
            g.c.add(this, "getAdcode");
            return g.A.Uka
        }, x9: function () {
            function a() {
                var a = !1;
                g.a.Nb(b.B.layers, function (b) {
                    if (b.nG && b.constructor === z.o.ob) return a = !0, !1
                }, b);
                if (g.a.ka(["d", "dv"], b.get("baseRender")) || !g.a.ka(["normal", "amap://styles/normal"], b.get("mapStyle")) || "3D" === b.get("viewMode") && 0 < b.get("pitch") || "all" !== b.get("features") || b.get("editEnable") || !b.get("turboMode")) a = !1;
                return a
            }

            if (!this.j7) {
                var b = this, c = a(), d = this.get("rasterLayer");
                if (d && !c) this.lk(d), this.set("rasterLayer", void 0); else if (!d && c && this.get("layers")) {
                    d = new z.o.ob({innerLayer: !0, map: this, kk: !0, zIndex: 0});
                    d.Bra = !0;
                    if (this.B.layers) {
                        var e = null;
                        g.a.Nb(this.B.layers, function (a) {
                            a instanceof z.o.ob && a.nG && (null === e || a.get("zIndex") > e.get("zIndex")) && (e = a)
                        });
                        e && d.Se(["zIndex", "opacity", "zooms", "visible"], e)
                    }
                    this.set("rasterLayer", d, !0)
                }
            }
        }, mma: function (a) {
            a || (a = {});
            if (a.hasOwnProperty("defaultLayer")) {
                a.layers = [a.defaultLayer];
                var b = a.defaultLayer;
                b.gP = !0;
                this.set("defaultLayer", b, !0)
            }
            a.layers && 0 !== a.layers.length ? this.set("defaultLayer", a.layers[0], !0) : (b = new z.o.ob({innerLayer: !0}), a.layers = [b], b.gP = !0,
                this.set("defaultLayer", b, !0));
            if (b = a.view) b.B.rotation && (a.rotation = b.B.rotation), b.B.center && (a.center = b.B.center), b.B.zoom && (a.zoom = Math.max(a.zooms[0], Math.min(a.zooms[1], b.B.zoom))), b.B.crs && (a.crs = b.B.crs);
            a.level && !a.zoom && (a.zoom = a.level);
            return a
        }, setLimitBounds: function (a) {
            g.c.add(this, "setLimitBounds");
            a instanceof g.dp && (a.D = !0, a = a.toBounds(), a.D = !1);
            a instanceof g.re || (a = null);
            this.set("limitBounds", a)
        }, clearLimitBounds: function () {
            g.c.add(this, "clearLimitBounds");
            this.set("limitBounds",
                null)
        }, getLimitBounds: function () {
            g.c.add(this, "getLimitBounds");
            return this.get("limitBounds", null, !0)
        }, vH: function (a) {
            var b = this.get("layers");
            if (!(0 <= g.a.indexOf(b, a)) && (b.push(a), this.set("layers", b), a.mG)) {
                a = a.getLayers();
                for (var b = -1, c = a.length; ++b < c;) {
                    var d = a[b];
                    d instanceof z.o.Tb || !d.setMap || d.setMap(this)
                }
            }
        }, WB: function (a) {
            var b = this.get("overlays");
            0 <= g.a.indexOf(b, a) || (a instanceof z.w.Hn ? (this.get("overlays").push(a), this.Tx instanceof z.w.Hn && (this.Tx.D = !0, this.Tx.close(), this.Tx.D = !1),
                this.Tx = a, this.set("contextmenu", a, !0)) : (a instanceof z.w.Qe && (this.mm instanceof z.w.Qe && this.iz(this.mm), this.mm = a), this.get("overlays").push(a)), this.q("overlays"))
        }, lk: function (a) {
            var b = this.get("layers"), c = g.a.indexOf(b, a);
            if (-1 !== c) {
                if (a.mG) for (c = b.length; -1 < --c;) {
                    var d = b[c];
                    d.zA !== a && d !== a || b.splice(c, 1)
                } else a.zA && a.zA.$ja(a), b = g.a.ro(b, c);
                this.set("layers", b);
                if (a.mG) for (a = a.getLayers(), b = -1, c = a.length; ++b < c;) d = a[b], d instanceof z.o.Tb || !d.setMap || d.setMap()
            }
        }, getZooms: function () {
            return this.get("zooms",
                null, !0)
        }, setZooms: function (a) {
            return this.set("zooms", a, !0)
        }, iz: function (a) {
            var b = this.get("overlays");
            this.set("overlays", g.a.ro(b, g.a.indexOf(b, a)))
        }, getTileCoordByLngLat: function (a, b, c) {
            b = b || 256;
            this.D = !0;
            c = c || Math.round(this.getZoom());
            this.D = !1;
            a = this.lc(a, c);
            c = new g.Uq(c, Math.floor(a.x / b), Math.floor(a.y / b));
            c.FC = a.x % b;
            c.GC = a.y % b;
            return c
        }, setZoom: function (a, b) {
            g.c.add(this, "setZoom");
            a = this.KC(a);
            var c = this.get("zooms");
            a > c[1] && (a = c[1]);
            a < c[0] && (a = c[0]);
            this.get("zoomEnable") && (b || !this.loaded ?
                (this.set("zoom", a), this.q("zoomstart"), this.q("zoomchange"), this.q("zoomend")) : this.set("zoomSlow", a))
        }, getZoom: function () {
            g.c.add(this, "getZoom");
            return this.KC(this.get("targetLevel") || this.get("zoom", null, !0))
        }, getCenter: function () {
            g.c.add(this, "getCenter");
            return this.get("center", null, !0)
        }, setCenter: function (a, b) {
            g.c.add(this, "setCenter");
            a = g.a.Ia(a);
            b || !this.loaded ? (this.q("movestart"), this.set("center", a), this.q("mapmove"), this.map ? this.map.q("moveend") : this.q("moveend")) : (this.D = !0, this.panTo(a),
                this.D = !1)
        }, getCoordsBound: function () {
            return this.view.dm()
        }, getCoordsBoundByZoom: function (a) {
            return this.view.mpa(a)
        }, setRotation: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;
            g.c.add(this, "setRotation");
            !g.l.ye && this.get("rotateEnable") && this.set("rotation", a)
        }, getRotation: function () {
            g.c.add(this, "getRotation");
            return this.get("rotation")
        }, setPitch: function (a) {
            g.c.add(this, "setPitch");
            a = Math.min(this.get("maxPitch"), Math.max(a, 0));
            "3D" === this.view.type && this.get("pitchEnable") &&
            this.set("pitch", a)
        }, getPitch: function () {
            g.c.add(this, "getRotation");
            return "3D" === this.view.type ? this.get("pitch") : 0
        }, getStatus: function () {
            g.c.add(this, "getStatus");
            for (var a = "isHotspot pitchEnable dragEnable zoomEnable keyboardEnable jogEnable doubleClickZoom scrollWheel resizeEnable touchZoom rotateEnable animateEnable".split(" "), b = {}, c = 0; c < a.length; c += 1) b[a[c]] = this.get(a[c], null, !0);
            return b
        }, setStatus: function (a) {
            g.c.add(this, "setStatus");
            for (var b in a) a.hasOwnProperty(b) && -1 !== "isHotspot,pitchEnable,dragEnable,keyboardEnable,doubleClickZoom,scrollWheel,zoomEnable,jogEnable,continuousZoomEnable,resizeEnable,animateEnable,rotateEnable,touchZoom".indexOf(b) &&
            this.set(b, a[b])
        }, getResolution: function (a, b) {
            g.c.add(this, "getResolution");
            var c = (a = g.a.Ia(a)) ? a.P : this.get("center", null, !0).P;
            return this.hj.Up(b || this.get("zoom")) * Math.cos(c * Math.PI / 180)
        }, getScale: function (a) {
            g.c.add(this, "getScale");
            this.D = !0;
            a = this.getResolution() * (a || 96) / 0.0254;
            this.D = !1;
            return a
        }, getDefaultCursor: function () {
            g.c.add(this, "getDefaultCursor");
            return this.get("defaultCursor", null, !0) || "url(" + g.A.yb + "/theme/v1.3/openhand.cur),default"
        }, setDefaultCursor: function (a) {
            g.c.add(this,
                "setDefaultCursor");
            return this.set("defaultCursor", a, !0)
        }, zoomIn: function (a) {
            g.c.add(this, "zoomIn");
            this.D = !0;
            this.setZoom(this.getZoom() + 1, a);
            this.D = !1
        }, zoomOut: function (a) {
            g.c.add(this, "zoomOut");
            this.D = !0;
            this.setZoom(this.getZoom() - 1, a);
            this.D = !1
        }, KC: function (a) {
            return this.view && "3D" === this.view.type ? g.a.hc(a, 4) : Math.round(a)
        }, setZoomAndCenter: function (a, b, c) {
            g.c.add(this, "setZoomAndCenter");
            b = g.a.Ia(b);
            a = this.KC(a);
            var d = this.get("zooms");
            a > d[1] && (a = d[1]);
            a < d[0] && (a = d[0]);
            this.D = !0;
            this.loaded ?
                this.set("zoomAndCenter", [a, b, c]) : (this.setZoom(a, !0), this.setCenter(b, !0));
            this.D = !1
        }, clearMap: function () {
            g.c.add(this, "clearMap");
            for (var a = this.get("overlays"), b = 0; b < a.length; b += 1) a[b].set("map", null, !0);
            this.set("overlays", []);
            if (this.map && this.map.za) for (a = this.map.za, b = a.length - 1; 0 <= b; b -= 1) if (a[b].T instanceof z.o.pL) {
                var c = a[b].T;
                c.D = !0;
                c.setMap(null);
                c.D = !1
            }
        }, destroy: function () {
            g.c.add(this, "destroy");
            this.lm && (this.lm.setMap(), this.indoorMap = this.lm = null);
            this.set("overlays", []);
            this.set("defaultLayer",
                null);
            this.set("layers", []);
            var a = this.get("controls");
            a.remove = [];
            for (var b in a.Hd) a.Hd.hasOwnProperty(b) && a.remove.push(a.Hd[b]);
            a.Hd = [];
            a.add = [];
            this.set("controls", a);
            this.set("destroy", !0);
            this.Ka = !1;
            this.rl();
            this.B = this.K = null;
            this.Cc && this.Cc.rl();
            this.Cc = null;
            this.view && this.view.rl();
            this.view = null;
            this.pi();
            z.Kb.xt--
        }, addControl: function (a) {
            g.c.add(this, "addControl");
            var b = g.a.ub(a), c = this.get("controls") || {};
            c.Hd = c.Hd || {};
            c.Hd[b] || (c.Hd[b] = a);
            c.add = c.add || [];
            c.add.push(a);
            this.set("controls",
                c)
        }, removeControl: function (a) {
            g.c.add(this, "removeControl");
            var b = g.a.ub(a), c = this.get("controls") || {};
            c.Hd = c.Hd || {};
            c.Hd[b] && delete c.Hd[b];
            c.remove = c.remove || [];
            c.remove.push(a);
            this.set("controls", c)
        }, clearControl: function () {
            g.c.add(this, "clearControl");
            var a = this.get("controls") || {};
            a.remove = a.remove || [];
            a.Hd = a.Hd || {};
            for (var b in a.Hd) a.Hd.hasOwnProperty(b) && (a.remove.push(a.Hd[b]), delete a.Hd[b]);
            this.set("controls", a)
        }, plugin: function (a, b) {
            g.c.add(this, "setPitch");
            "string" === typeof a && (a = [a]);
            g.qb.Rg(a, b);
            return this
        }, clearInfoWindow: function () {
            g.c.add(this, "clearInfoWindow");
            var a = this.get("overlays");
            a && 0 !== a.length && this.mm && (this.mm.D = !0, this.mm.close(), this.mm.D = !1)
        }, remove: function (a) {
            g.c.add(this, "remove");
            a instanceof Array || (a = [a]);
            for (var b = 0; b < a.length; b += 1) {
                var c = a[b];
                c.D = !0;
                c.getMap && c.getMap() === this && (c.close ? c.close() : c.setMap && c.setMap(null));
                c.D = !1
            }
        }, add: function (a) {
            g.c.add(this, "add");
            a instanceof Array || (a = [a]);
            for (var b = 0; b < a.length; b += 1) {
                var c = a[b];
                c.D = !0;
                if (c.getMap &&
                    c.getMap() !== this) if (c.open) continue; else c.setMap && c.setMap(this);
                c.D = !1
            }
        }, getAllOverlays: function (a, b) {
            g.c.add(this, "getAllOverlays");
            var c = this.get("overlays");
            if (a) {
                for (var d = "amap." + a.toLowerCase(), e = [], f = 0; f < c.length; f += 1) d !== c[f].CLASS_NAME.toLowerCase() || !b && (c[f].Aa || c[f].isOfficial) || e.push(c[f]);
                return e
            }
            if (!b) {
                e = [];
                for (f = 0; f < c.length; f += 1) c[f].Aa || c[f].isOfficial || e.push(c[f]);
                c = e
            }
            d = this.get("layers");
            e = [];
            if (d) for (var f = 0, h = d.length; f < h; f += 1) d[f] instanceof z.o.pL && e.push(d[f]), d[f].ib &&
            (e = e.concat(d[f].ib));
            return c.concat(e)
        }, triggerResize: function () {
            this.map && this.map.wO()
        }, refreshSize: function () {
            this.NF = this.s3()
        }, s3: function () {
            return g.j.o3(this.K)
        }, getSize: function () {
            g.c.add(this, "getSize");
            (!this.NF || 10 > this.NF.width * this.NF.height) && this.refreshSize();
            return this.NF
        }, getContainer: function () {
            g.c.add(this, "getContainer");
            return this.K
        }, panTo: function (a) {
            g.c.add(this, "panTo");
            a = g.a.Ia(a);
            this.loaded ? this.set("panTo", a) : (this.D = !0, this.setCenter(a), this.D = !1)
        }, panBy: function (a,
                            b, c) {
            g.c.add(this, "panBy");
            this.D = !0;
            var d = this.get("rotation") * Math.PI / 180, e = a * Math.cos(d) + Math.sin(d) * b;
            a = -Math.sin(d) * a + Math.cos(d) * b;
            b = this.loaded && this.map && this.map.Bd ? this.map.Bd.I8 : this.get("centerCoords");
            d = Math.pow(2, 20 - this.getZoom());
            e = b.add(new g.G(-e * d, -a * d));
            e = this.Ld(e);
            !this.loaded || c ? this.setCenter(e, c) : this.set("panTo", e);
            this.D = !1
        }, setFitView: function (a, b, c, d) {
            g.c.add(this, "setFitView");
            this.D = !0;
            var e = this.get("size"), f = e.height;
            if (!e.width || !f) return !0;
            if (a = this.I3(a)) {
                if (c =
                    this.FI(a, 0, new g.G(40, 40), c, d)) b = b || !this.getBounds().contains(a.ri()) || g.l.ba && 1 < Math.abs(c[0] + this.get("zoom", null, !0)), this.setZoomAndCenter(c[0], c[1], b);
                this.D = !1;
                return a
            }
        }, I3: function (a) {
            if (a) if (a instanceof z.w.zh) a = [a]; else {
                if (!(a instanceof Array)) return null
            } else this.D = !0, a = this.getAllOverlays(), this.D = !1;
            if (a) {
                for (var b, c = 0; c < a.length; c += 1) {
                    var d = a[c];
                    if (d.get("visible") && !(d instanceof z.w.Qe || d instanceof z.w.Hn)) {
                        d.D = !0;
                        var e = d.getBounds();
                        d.D = !1;
                        e && (b = b ? b.qya(e) : e.lb())
                    }
                }
                return b
            }
        },
        getBounds: function (a) {
            g.c.add(this, "getBounds");
            var b = this.view.od();
            return a && b.toBounds ? (b.D = !0, a = b.toBounds(), b.D = !1, a) : b
        }, setBounds: function (a, b, c, d, e, f) {
            g.c.add(this, "setBounds");
            c = this.FI(a, b, c, e, f);
            d = d || g.l.ba && 1 < Math.abs(c[0] + b - this.get("zoom", null, !0));
            this.D = !0;
            this.setZoomAndCenter(c[0], c[1], d);
            this.D = !1;
            return a
        }, x3: function (a, b, c, d, e) {
            a = this.I3(a);
            return this.FI(a, b, c, d, e)
        }, getCoordsBoundByZoomIn3D: function (a) {
            this.BH || (this.BH = new g.SL);
            this.D = !0;
            var b = this.getRotation(), c = this.getPitch(),
                d = this.getSize(!0).lb();
            this.D = !1;
            a = {size: d, zoom: a, rotation: b, pitch: c, centerCoords: this.get("centerCoords")};
            this.BH.Ze(a, !0);
            this.BH.Mq();
            return this.BH.dm()
        }, FI: function (a, b, c, d, e) {
            b = b ? Number(b) : 0;
            this.D = !0;
            var f = this.getRotation(), h = this.getPitch(), k = this.getSize(!0).lb(), l = this.view.type;
            this.D = !1;
            var m = a.TQ(this);
            a = a.WQ(this);
            this.ZB || (this.ZB = "3D" === l ? new g.SL : new g.uF);
            this.ZB.Ze({size: k, zoom: 3, rotation: f, pitch: h, centerCoords: m}, !0);
            var n = h = 0;
            d ? (n = d[0], c = d[1], h = d[2], d = d[3], k.width -= h + d, k.height -=
                n + c, h = (h - d) / 2, n = (n - c) / 2) : c && (k.width -= 2 * c.x, k.height -= 2 * c.y);
            e = e || (g.l.ba ? 17 : 18);
            c = this.get("zooms");
            d = c[0];
            var p = Infinity, q = Infinity;
            do {
                this.ZB.Ze({zoom: d}, !0);
                "3D" === l && this.ZB.Mq();
                for (var q = p = Infinity, r = -Infinity, s = -Infinity, u = 0; u < a.length; u += 1) var v = this.ZB.ce(a[u]), p = Math.min(p, v.x), r = Math.max(r, v.x), q = Math.min(q, v.y), s = Math.max(s, v.y);
                p = r - p;
                q = s - q;
                if (p > k.width || q > k.height) {
                    d -= 1;
                    break
                }
                d += 1
            } while (d <= c[1]);
            d = Math.min(c[1], e, Math.max(c[0], d + b));
            d = Math.floor(d);
            b = Math.pow(2, 20 - d);
            e = f * Math.PI / 180;
            f = h * Math.cos(e) + Math.sin(e) * n;
            e = -Math.sin(e) * h + Math.cos(e) * n;
            m = m.$a(new g.G(f * b, e * b));
            m = this.Uh(m, 20);
            return [d, m]
        }, setLayers: function (a) {
            g.c.add(this, "setLayers");
            for (var b = 0; b < a.length; b += 1) a[b].set("map", this, !0);
            this.set("layers", a)
        }, getLayers: function () {
            g.c.add(this, "getLayers");
            var a = this.get("layers", null, !0), a = a.slice();
            if (this.D) {
                for (var b = [], c = -1, d = a.length; ++c < d;) {
                    var e = a[c];
                    if (e.mG) for (var e = e.getLayers(), f = -1, h = e.length; ++f < h;) {
                        var k = e[f];
                        k instanceof z.o.Tb && -1 === g.a.indexOf(a, k) && b.push(k)
                    }
                }
                a =
                    a.concat(b)
            } else for (b = a.length; -1 < --b;) a[b].zA && a.splice(b, 1);
            return a
        }, getDefaultLayer: function () {
            g.c.add(this, "getDefaultLayer");
            return this.get("defaultLayer", null, !0)
        }, setDefaultLayer: function (a) {
            g.c.add(this, "setDefaultLayer");
            this.D = !0;
            a.gP = !0;
            var b = this.get("defaultLayer"), c = this.get("layers");
            if (b) {
                if (a === b) return;
                b.gP = !1;
                c = g.a.ro(c, g.a.indexOf(c, b))
            }
            this.set("defaultLayer", a, !0);
            a.D = !0;
            a.getMap == this && c.push(a);
            a.D = !1;
            this.setLayers(c);
            this.D = !1
        }, pixelToLngLat: function (a, b) {
            g.c.add(this,
                "pixelToLngLat");
            return this.Uh(a, b)
        }, lnglatToPixel: function (a, b) {
            g.c.add(this, "lnglatToPixel");
            return this.lc(a, b)
        }, drawPolyline: function (a) {
            g.c.add(this, "drawPolyline");
            this.set("draw", "polyline");
            this.set("drawStyle", a || {strokeColor: "#006600", mb: 0.9})
        }, render: function (a) {
            g.c.add(this, "render");
            this.map && this.map.set("display", a ? 1 : 0)
        }, setMask: function (a) {
            g.c.add(this, "setMask");
            this.set("mask", a);
            this.map && (this.map.yJ = !0, this.map.set("display"))
        }, drawPolygon: function (a) {
            g.c.add(this, "drawPolygon");
            this.set("draw", "polygon");
            this.set("drawStyle", a || {strokeColor: "#006600", mb: 0.9, fillColor: "#FFAA00", be: 0.9})
        }, drawCircle: function (a) {
            g.c.add(this, "drawCircle");
            this.set("draw", "circle");
            this.set("drawStyle", a || {strokeColor: "#006600", mb: 0.9, fillColor: "#006600", be: 0.9})
        }, QI: function () {
            return this.view.QI()
        }, getCameraState: function () {
            g.c.add(this, "getCameraState");
            if (this.view && "3D" == this.view.type) return this.view.n3()
        }, endDraw: function () {
            this.set("draw", null)
        }, isGoogleTileVisible: function () {
            return this.map.isForeignMapVisible()
        },
        isForeignMapVisible: function () {
            if (this.get("gridForeignMap") || this.get("vectorForeignMap")) return this.map && this.map.Bfa()
        }, ce: function (a, b, c) {
            g.c.add(this, "p20ToContainer");
            return this.view.ce(a, b, c)
        }, qg: function (a, b, c) {
            g.c.add(this, "containerToP20");
            return this.view.qg(a, b, c)
        }, getObject3DByContainerPos: function (a, b, c) {
            g.c.add(this, "getObject3DByContainerPos");
            if ("2D" === this.view.type || !this.map || !this.map.J) return null;
            this.D = !0;
            this.view.qg(a);
            var d = this.view.r3(a), e = this.map.J.oT, f = this.view.$c,
                h = this.get("zoom", null, !0), h = Math.pow(2, 20 - h);
            b = b || this.getLayers();
            this.D = !1;
            for (var k = [], l = 0; l < b.length; l += 1) {
                var m = b[l];
                m instanceof z.o.ar && (m = m.Xo(e, d, f, h, a)) && k.push(m)
            }
            return c ? k : k.length ? (k.sort(function (a, b) {
                return a.Sd - b.Sd
            }), {index: k[0].index, point: k[0].QD, distance: k[0].Sd, object: k[0].object}) : null
        }
    });
    z.Kb.Ob({
        pJ: "lngLatToGeodeticCoord",
        jpa: "geodeticCoordToLngLat",
        FI: "getFitZoomAndCenterByBounds",
        x3: "getFitZoomAndCenterByOverlays",
        qs: "lnglatTocontainer",
        lnglatTocontainer: "lngLatToContainer",
        Hp: "containTolnglat",
        containTolnglat: "containerToLngLat",
        Ab: "lngLatToP20",
        Ld: "p20ToLngLat",
        ce: "p20ToContainer",
        qg: "containerToP20",
        lc: "project",
        Uh: "unproject"
    });
    z.Kb.zb({
        isHotspotChanged: function () {
            if ("undefined" !== typeof this.YC && (this.Mma(), this.get("isHotspot"))) {
                var a = this.get("layers", null, !0);
                a && a.length && !this.YC && this.EJ && this.Nta()
            }
        }, Nta: function () {
            if (this.bk) this.r4(); else {
                var a = this;
                this.D = !0;
                this.plugin("AMap.HotSpot", function () {
                    if (!a.YC) {
                        if (!a.bk) {
                            var b = new g.$h;
                            new z.w.Qe({innerOverlay: !0});
                            a.bk = b
                        }
                        a.r4()
                    }
                });
                this.D = !1
            }
        }, Mma: function () {
            this.bk && this.Nqa()
        }, s6: function (a) {
            a.type = "hotspotover";
            a.isIndoorPOI = !1;
            this.q("hotspotover", a)
        }, q6: function (a) {
            a.type =
                "hotspotclick";
            a.isIndoorPOI = !1;
            this.q("hotspotclick", a)
        }, r6: function (a) {
            a.type = "hotspotout";
            a.isIndoorPOI = !1;
            this.q("hotspotout", a)
        }, r4: function () {
            var a = this.bk;
            this.bk.D = !0;
            this.bk.setMap(this);
            this.bk.D = !1;
            a.h("mouseover", this.s6, this);
            a.h("click", this.q6, this);
            a.h("mouseout", this.r6, this)
        }, Nqa: function () {
            var a = this.bk;
            a.H("mouseover", this.s6, this);
            a.H("click", this.q6, this);
            a.H("mouseout", this.r6, this);
            this.bk.D = !0;
            this.bk.setMap(null);
            this.bk.D = !1;
            this.bk = null
        }
    });
    z.event = {
        X: function (a, b, c, d) {
            g.F.h(a, b, c, d);
            return new g.ZE(0, a, b, c, d)
        }, Xka: function () {
        }, addListener: function (a, b, c, d) {
            g.a.Mh(a.addListener) ? a.addListener(b, c, d) : (a.ke || (a.ke = g.va.ke), g.va.h.call(a, b, c, d));
            return new g.ZE(1, a, b, c, d)
        }, Hx: function (a, b, c, d) {
            g.a.Mh(a.Hx) ? a.Hx(b, c, d) : (a.ke || (a.ke = g.va.ke), g.va.h.call(a, b, c, d, !0));
            return new g.ZE(1, a, b, c, d)
        }, PH: function (a) {
            g.a.Mh(a.PH) ? a.PH() : g.va.pi.call(a)
        }, pu: function (a, b) {
            g.a.Mh(a.pu) ? a.pu(b) : g.va.pi.call(a, b)
        }, removeListener: function (a) {
            a instanceof
            g.ZE && (g.a.Mh(a.ui.removeListener) ? a.ui.removeListener(a) : 0 === a.type ? g.F.H(a.ui, a.xQ, a.GR, a.Te) : 1 === a.type && (a.ui.ke || (a.ui.ke = g.va.ke), g.va.H.call(a.ui, a.xQ, a.GR, a.Te)))
        }, O: function (a, b) {
            var c = Array.prototype.slice.call(arguments, 1);
            g.a.Mh(a.O) ? a.O.apply(a, c) : (a.ke || (a.ke = g.va.ke), g.va.q.apply(a, c))
        }
    };
    g.ZE = g.aa.extend({
        r: function (a, b, c, d, e) {
            this.type = a;
            this.ui = b;
            this.xQ = c;
            this.GR = d;
            this.Te = e
        }
    });
    var nc = {
        X: "addDomListener",
        Xka: "addDomListenerOnce",
        addListener: "addListener",
        Hx: "addListenerOnce",
        PH: "clearInstanceListeners",
        pu: "clearListeners",
        removeListener: "removeListener",
        O: "trigger"
    }, oc;
    for (oc in nc) nc.hasOwnProperty(oc) && (z.event[nc[oc]] = z.event[oc]);
    g.event = z.event;
    z.o.Tb = g.aa.extend({
        ka: [g.va, g.Re], r: function (a) {
            (new Date).getTime();
            this.CLASS_NAME = this.CLASS_NAME || "AMap.Layer";
            g.a.Db(this, a);
            this.B.map && (a = this.B.map, delete this.B.map, this.B.map = a);
            this.Ze(this.B)
        }, getContainer: function () {
            g.c.add(this, "getContainer");
            if (this.o && this.o.M) return this.o.M.oj()
        }, getZooms: function () {
            return this.get("zooms", null, !0)
        }, setOpacity: function (a) {
            g.c.add(this, "setOpacity");
            a !== this.get("opacity", null, !0) && this.set("opacity", a)
        }, getOpacity: function () {
            return this.get("opacity",
                null, !0)
        }, show: function () {
            g.c.add(this, "show");
            this.set("visible", !0);
            if (this.iq) {
                var a = this.get("map", null, !0);
                a && a.set("layers", a.get("layers", null, !0))
            }
        }, hide: function () {
            g.c.add(this, "hide");
            this.set("visible", !1);
            if (this.iq) {
                var a = this.get("map", null, !0);
                a && a.set("layers", a.get("layers", null, !0))
            }
        }, setMap: function (a) {
            g.c.add(this, "setMap");
            var b = this.get("map");
            if (a) b && a !== b && b.lk(this), this.set("map", a); else if (b && (b.lk(this), this.set("map", null, !0), this.mi = !1, this.Tg && this.Tg(), this.onRemove)) this.onRemove()
        },
        getMap: function () {
            g.c.add(this, "getMap");
            return this.get("map", null, !0)
        }, mapChanged: function () {
            var a = this.get("map");
            a && a.vH(this)
        }, setzIndex: function (a) {
            g.c.add(this, "setzIndex");
            this.set("zIndex", a)
        }, getzIndex: function () {
            return this.get("zIndex", null, !0)
        }
    });
    z.o.ob = z.o.Tb.extend({
        B: {
            tileSize: 256,
            visible: !0,
            opacity: 1,
            zIndex: 0,
            noLimg: 1,
            zooms: [3, 20],
            getTileUrl: g.l.ba ? g.A.yE : g.A.rD,
            errorUrl: g.a.yoa,
            detectRetina: !0,
            className: "amap-layer",
            mapNumber: "",
            merge: !1,
            sort: !1,
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.TileLayer";
            g.c.xa(this, a);
            (a = a || {}) && a.tileUrl && (a.getTileUrl = a.tileUrl);
            this.tma(a);
            var b = a.zooms;
            b && b[1] >= this.el[0] ? (b[0] < this.el[0] && (b[0] = this.el[0]), b[1] > this.el[1] && (b[1] = this.el[1])) : a.zooms = [this.el[0], this.el[1]];
            arguments.callee.la.call(this, a);
            a.kk && (this.kk = !0);
            this.nG = this.ev()
        }, setTextIndex: function (a) {
            g.c.add(this, "setTextIndex");
            this.set("textIndex", a)
        }, ev: function () {
            if (this.get("createTile")) return !1;
            var a = this.get("getTileUrl");
            return a && a !== g.A.rD && a !== g.A.yE ? !1 : !0
        }, S1: function () {
            if (!this.ev()) return !1;
            var a = this.get("map");
            return a && a.wi && "zh_cn" === a.get("lang") && !this.noVector ? !0 : !1
        }, O3: function (a) {
            var b = g.A.uJ;
            g.l.ja && this.get("detectRetina") && (b = g.A.uJ.replace("scl=1", "scl=2"));
            a && (b = b.replace("ltype=3",
                "ltype=11"));
            return b
        }, Pf: function (a) {
            var b = this.S1(), c = this.get("map");
            this.ev() && this.set("mapNumber", "GS(2018)1709");
            if (this.kk) return new g.o.ob(this, a, this.er(this.O3(!0)), this.B.maxDataZoom, !0);
            if (b) if (this.iq = !0, g.o.bi) {
                if ("dv" === c.get("baseRender") && !this.get("watermark")) {
                    var b = c.get("showBuildingBlock"), d = new g.o.ob(this, a, this.er(this.O3(!b)), void 0, !0);
                    b && (d.ll = new g.o.md(new z.o.ob({
                        zooms: [16, 20],
                        innerLayer: !0
                    }), a, ["building"]), d.ll.type = "\u697c\u5757\u56fe\u5c42", d.ll.Se(["visible",
                        "opacity", "zIndex"], d, !0), d.ll.eC(c.get("mapStyle") || "normal"));
                    d.type = "\u6805\u683c\u5e95\u56fe";
                    return d
                }
                if ("v" <= c.get("baseRender") || this.get("watermark")) return "3D" == a.C.view.type ? (c = new g.o.md(this, a, ["region", "road"]), c.type = "\u77e2\u91cf\u5e95\u56fe", b = new z.o.ob({
                    zooms: [17, 20],
                    zIndex: 50,
                    innerLayer: !0
                }), c.ll = new g.o.md(b, a, ["building"]), c.ll.Ye = 17, c.ll.type = "\u697c\u5757\u56fe\u5c42", c.ll.Ay = 1, c.ll.Se(["visible", "merge", "sort", "opacity"], c, !0), b.W("rejectMapMask", this, !0)) : (c = new g.o.md(this,
                    a, ["region", "building", "road"]), c.type = "\u77e2\u91cf\u5e95\u56fe"), a.Ela = c
            } else return ["vectorlayer", "overlay"]; else return this.iq = !1, new g.o.ob(this, a, null, this.B.maxDataZoom)
        }, getTileUrlChanged: function () {
            var a = this.get("getTileUrl");
            if (a === g.A.rD || a === g.A.yE || a === g.A.sK) this.EJ = !0;
            "string" === typeof a && (a = this.er(a));
            this.set("tileFun", a)
        }, tma: function (a) {
            this.el || (this.el = [this.B.zooms[0], this.B.zooms[1]]);
            var b;
            a.hasOwnProperty("detectRetina") && !1 === a.detectRetina && (b = !0);
            g.l.ba && g.l.ja && this.B.detectRetina &&
            !b && (this.el[1] -= 1)
        }, getTiles: function () {
            g.c.add(this, "getTiles");
            var a = this.get("tiles", null, !0);
            if (a && a.length) a = a[0]; else return [];
            for (var b = [], c, d = 0; d < a.length; d += 1) a[d].key && (c = a[d].key.split("/"), b.push("" + c[1] + "," + c[2]));
            return b
        }, reload: function () {
            g.c.add(this, "reload");
            this.set("reload", 1)
        }, Ks: function () {
            this.D = !0;
            var a = this.get("map", null, !0);
            this.setMap(null);
            this.mi = !1;
            this.setMap(a);
            this.D = !1
        }, setTileUrl: function (a) {
            g.c.add(this, "setTileUrl");
            this.S1() ? (this.set("getTileUrl", a), this.Ks()) :
                this.set("getTileUrl", a)
        }, er: function (a) {
            var b = this, c, d, e;
            return function (f, h, k) {
                f = (f + Math.pow(2, k)) % Math.pow(2, k);
                if ("number" !== typeof (f + h + k)) return null;
                var l = b.get("map"), m = "zh_cn";
                l && (m = l.get("lang") || "zh_cn");
                k = a.replace("[x]", f).replace("[y]", h).replace("[z]", k).replace("[lang]", m);
                if (!c) {
                    if (d = a.match(/\{.*\}/)) e = d.toString().replace("{", "").replace("}", ""), e = e.split(",");
                    c = !0
                }
                e && e.length && (k = k.replace(d, e[Math.abs(f + h) % e.length]));
                return k
            }
        }, getTileUrl: function (a, b, c) {
            g.c.add(this, "getTileUrl");
            return this.get("tileFun", null, !0)(a, b, c)
        }, getZooms: function (a) {
            a || g.c.add(this, "getZooms");
            return this.get("zooms", null, !0)
        }
    });
    z.o.ob.eW = z.o.ob.extend({
        B: {
            getTileUrl: g.A.WT,
            zooms: [3, 20],
            zIndex: 2,
            maxDataZoom: 18,
            detectRetina: !1,
            mapNumber: "GS(2018)984",
            className: "amap-layer amap-satellite",
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = "AMap.TileLayer.Satellite";
            g.c.xa(this, a);
            this.el = [3, 20];
            arguments.callee.la.apply(this, arguments)
        }
    });
    z.o.ob.bW = z.o.ob.extend({
        B: {
            getTileUrl: g.A.sK,
            zooms: [3, 20],
            zIndex: 3,
            type: "overlayer",
            maxDataZoom: 18,
            className: "amap-layer amap-roadnet",
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = "AMap.TileLayer.RoadNet";
            g.c.xa(this, a);
            this.el = [3, 20];
            arguments.callee.la.apply(this, arguments)
        }, Pf: function (a) {
            if (this.get("map").wi) {
                this.iq = !0;
                var b = g.A.tK;
                g.l.ja && this.get("detectRetina") && (b = g.A.tK.replace("scl=1", "scl=2"));
                a = new g.o.ob(this, a, this.er(b), this.B.maxDataZoom)
            } else this.iq = !1, a = new g.o.ob(this,
                a);
            return a
        }
    });
    z.o.ob.mW = z.o.ob.extend({
        B: {
            getTileUrl: function (a, b, c) {
                return g.A.Fc + "://tm.amap.com/trafficengine/mapabc/traffictile?v=1.0&t=1&zoom=" + (17 - c) + "&x=" + a + "&y=" + b
            },
            zooms: [6, 20],
            zIndex: 4,
            type: "overlayer",
            autoRefresh: !1,
            interval: 180,
            maxDataZoom: 17,
            alwaysRender: !g.l.G2,
            className: "amap-layer amap-traffic",
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = "AMap.TileLayer.Traffic";
            g.c.xa(this, a);
            this.el = [6, 20];
            arguments.callee.la.apply(this, arguments);
            this.D = !0;
            this.startRefresh();
            this.D = !1
        }, stopRefresh: function () {
            g.c.add(this,
                "stopRefresh");
            this.gK && (clearInterval(this.gK), this.gK = null)
        }, startRefresh: function () {
            g.c.add(this, "startRefresh");
            if (this.get("autoRefresh") && !this.gK) {
                var a = this;
                this.gK = setInterval(function () {
                    a.D = !0;
                    a.reload();
                    a.D = !1;
                    a.q("refresh")
                }, Math.max(1E3 * (this.get("interval") || 180), 1E4))
            }
        }, reload: function () {
            g.c.add(this, "reload");
            g.a.Rc(function () {
                this.set("reload")
            }, this)
        }, Tg: function () {
            this.D = !0;
            this.stopRefresh();
            this.get("map") && this.get("map").H("zoomstart", this.reload, this);
            this.D = !1
        }, Pf: function (a) {
            var b =
                this.get("map"), b = a.C;
            b.h("zoomstart", this.reload, this);
            return "d" !== b.get("baseRender") ? g.o.Hw ? a = new g.o.Hw(this, a) : ["vt"] : a = new g.o.ob(this, a, null, this.B.maxDataZoom)
        }
    });
    z.o.ob.aA = z.o.ob.extend({
        B: {
            zooms: [3, 20],
            zIndex: 12,
            detectRetina: !1,
            className: "amap-layer amap-flexible",
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.TileLayer.Flexible";
            g.c.xa(this, a);
            this.Cra = !0;
            arguments.callee.la.call(this, a)
        }, setCreateTile: function (a) {
            g.c.add(this, "setCreateTile");
            "function" === typeof a && a !== this.get("createTile") && this.set("createTile", a)
        }, getCreateTile: function () {
            return this.get("createTile", null, !0)
        }
    });
    z.o.ob.Maa = z.o.ob.aA.extend({
        B: {
            zooms: [3, 20],
            zIndex: 12,
            tileSize: 512,
            detectRetina: !1,
            className: "amap-layer amap-wms",
            cacheSize: g.l.size,
            url: "",
            params: ""
        }, r: function (a) {
            this.CLASS_NAME = "AMap.TileLayer.WMS";
            g.c.xa(this, a);
            arguments.callee.la.call(this, a);
            this.ew();
            var b = this, c = this.get("tileSize");
            this.set("createTile", function (a, e, f, h, k) {
                var l = Math.pow(2, 20 - f) * c;
                f = new g.G(l * a, l * (e + 1));
                a = new g.G(l * (a + 1), l * e);
                e = g.tJ.A6(f);
                a = g.tJ.A6(a);
                var m = document.createElement("img");
                "3D" === b.Ag && (m.crossOrigin = "anonymous");
                g.F.h(m, "load", function () {
                    h(m)
                });
                g.F.h(m, "error", function () {
                    k(m)
                });
                m.src = this.url + "&BBOX=" + e + "," + a
            })
        }, ew: function () {
            var a = this.get("url", null, !0), b = this.get("params", null, !0), c = this.get("tileSize");
            b.WIDTH = c;
            b.HEIGHT = c;
            b.CRS = b.CRS || "EPSG:3857";
            b.REQUEST = "GetMap";
            b.SERVICE = "WMS";
            b.FORMAT = b.FORMAT || "image/png";
            b.TRANSPARENT = void 0 === b.TRANSPARENT ? "true" : b.TRANSPARENT;
            delete b.BBOX;
            this.url = a + "?" + g.a.join(b, "&");
            this.D = !0;
            this.reload();
            this.D = !1
        }, setUrl: function (a) {
            g.c.add(this, "setUrl");
            this.set("url",
                a, !0);
            this.ew()
        }, getUrl: function () {
            g.c.add(this, "getUrl");
            return this.get("url", null, !0)
        }, setParams: function (a) {
            g.c.add(this, "setParams");
            g.extend(this.get("params", null, !0), a || {});
            this.ew()
        }, getParams: function () {
            g.c.add(this, "getParams");
            return this.get("params", null, !0)
        }
    });
    z.o.ob.Naa = z.o.ob.aA.extend({
        B: {
            zooms: [3, 20],
            tileSize: 256,
            zIndex: 12,
            detectRetina: !1,
            className: "amap-layer amap-wmts",
            cacheSize: g.l.size
        }, r: function (a) {
            this.CLASS_NAME = "AMap.TileLayer.WMTS";
            g.c.xa(this, a);
            arguments.callee.la.call(this, a);
            this.ew();
            var b = this;
            this.get("tileSize");
            this.set("createTile", function (a, d, e, f, h) {
                var k = document.createElement("img");
                "3D" === b.Ag && (k.crossOrigin = "anonymous");
                g.F.h(k, "load", function () {
                    f(k)
                });
                g.F.h(k, "error", function () {
                    h(k)
                });
                k.src = this.url + "&TileMatrix=" + e + "&TileRow=" +
                    d + "&TileCol=" + a
            })
        }, ew: function () {
            var a = this.get("url", null, !0), b = this.get("params", null, !0);
            b.TileMatrixSet = b.TileMatrixSet || "EPSG:3857";
            b.Request = "GetTile";
            b.Service = "WMTS";
            b.Format = b.Format || "image/png";
            this.url = a + "?" + g.a.join(b, "&");
            this.D = !0;
            this.reload();
            this.D = !1
        }, setUrl: function (a) {
            g.c.add(this, "setUrl");
            this.set("url", a, !0);
            this.ew()
        }, getUrl: function () {
            g.c.add(this, "getUrl");
            return this.get("url", null, !0)
        }, setParams: function (a) {
            g.c.add(this, "setParams");
            g.extend(this.get("params", null, !0),
                a || {});
            this.ew()
        }, getParams: function () {
            g.c.add(this, "getParams");
            return this.get("params", null, !0)
        }
    });
    z.o.ob.bF = z.o.ob.aA.extend({
        B: {detectRetina: !0, zooms: [10, 18], zIndex: 2}, r: function (a) {
            arguments.callee.la.apply(this, arguments);
            var b = this;
            this.set("createTile", function (a, d, e, f, h) {
                var k = b.Ie.map.map;
                k.Ah.Az(a, d, e, function (l) {
                    if (l) h(); else {
                        var m = document.createElement("img");
                        "3D" === b.Ag && (m.crossOrigin = "anonymous");
                        g.F.h(m, "load", function () {
                            f(m)
                        });
                        g.F.h(m, "error", function () {
                            h(m)
                        });
                        m.src = function (a, c, d) {
                            var e = "zh_cn";
                            b && b.get && k && (e = k.get("lang") || "zh_cn");
                            return g.A.Fc + "://grid.amap.com/grid/" + d + "/" +
                                a + "/" + c + "?src=jsapi&key=" + g.A.key + "&lang=" + e + "&dpiType=" + (g.l.Mc ? "wprd" : "webrd")
                        }(a, d, e)
                    }
                })
            })
        }
    });
    z.o.ad = z.o.Tb.extend({
        B: {visible: !0, zooms: [3, 25], type: "overlay", zIndex: 5, alwaysRender: !0},
        r: function (a) {
            this.L4 = !0;
            arguments.callee.la.apply(this, arguments)
        },
        Pf: function (a) {
            return new g.o.ad(this, a)
        }
    });
    z.o.c$ = z.o.Tb.extend({
        B: {zooms: [14, 20], zIndex: 8, visible: !0, merge: !0, sort: !1}, r: function (a) {
            this.CLASS_NAME = "AMap.Buildings";
            g.c.xa(this, a);
            a = a || {};
            a.zooms && (a.zooms[0] = Math.max(14, a.zooms[0]));
            arguments.callee.la.apply(this, arguments)
        }, ev: function () {
            return !1
        }, Pf: function (a) {
            if (g.l.ou) return a = new g.o.Jaa(this, a), a.Ay = this.get("heightFactor") || 1, a
        }, setStyle: function (a) {
            this.set("customStyle", a);
            g.c.add(this, "setStyle")
        }
    });
    z.o.iL = z.o.Tb.extend({
        B: {visible: !0, zooms: [3, g.l.ba ? 20 : 18], opacity: 1, type: "overlay", zIndex: 6}, r: function (a) {
            arguments.callee.la.apply(this, arguments)
        }, Pf: function (a) {
            return g.o.dA ? new g.o.dA(this, a) : ["imagelayer"]
        }, getMap: function () {
            g.c.add(this, "getMap");
            return this.Ie.map
        }, show: function () {
            g.c.add(this, "show");
            this.set("visible", !0);
            this.q("options")
        }, getOpacity: function () {
            g.c.add(this, "getOpacity");
            return this.get("opacity", null, !0)
        }, setOpacity: function (a) {
            g.c.add(this, "setOpacity");
            this.set("opacity",
                a)
        }, getBounds: function () {
            g.c.add(this, "getBounds");
            return this.get("bounds", null, !0).lb()
        }, setBounds: function (a) {
            g.c.add(this, "setBounds");
            this.q("bounds", a);
            this.D = !0;
            this.setOptions({bounds: a});
            this.D = !1
        }, hide: function () {
            g.c.add(this, "hide");
            this.set("visible", !1);
            this.q("options")
        }, setOptions: function (a) {
            g.c.add(this, "setOptions");
            this.Ze(a);
            this.q("options")
        }, getOptions: function () {
            g.c.add(this, "getOptions");
            var a = {}, b;
            for (b in this.B) this.B.hasOwnProperty(b) && (a[b] = this.get(b));
            return a
        }, getElement: function () {
            return this.o.M ?
                this.o.M.bc : this.o.eg ? this.o.eg.bc : null
        }
    });
    z.o.dA = z.o.iL.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.ImageLayer";
            g.c.xa(this, a);
            a && a.url && (a.__source__ = a.url);
            arguments.callee.la.apply(this, arguments)
        }, getImageUrl: function () {
            g.c.add(this, "getImageUrl");
            return this.get("__source__")
        }, setImageUrl: function (a) {
            g.c.add(this, "setImageUrl");
            return this.set("__source__", a)
        }
    });
    z.o.Laa = z.o.iL.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.VideoLayer";
            g.c.xa(this, a);
            a && a.url && (a.__source__ = a.url);
            arguments.callee.la.apply(this, arguments)
        }, getVideoUrl: function () {
            g.c.add(this, "getVideoUrl");
            return this.get("__source__")
        }, setVideoUrl: function (a) {
            g.c.add(this, "setVideoUrl");
            return this.set("__source__", a)
        }
    });
    z.o.e$ = z.o.iL.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.CanvasLayer";
            g.c.xa(this, a);
            a && a.canvas && (a.__source__ = a.canvas);
            arguments.callee.la.apply(this, arguments)
        }, getCanvas: function () {
            g.c.add(this, "getCanvas");
            return this.get("__source__")
        }, setCanvas: function (a) {
            g.c.add(this, "setCanvas");
            return this.set("__source__", a)
        }, reFresh: function () {
            this.o && (this.o.pE = !0, this.o.set("display"))
        }
    });
    z.o.Y$ = z.o.Tb.extend({
        B: {
            visible: !0,
            zooms: [3, 20],
            type: "overlay",
            zIndex: 5,
            cursor: "pointer",
            alwaysRender: !0,
            stable: !0,
            bubble: !0,
            rejectMapMask: !0,
            className: "amap-mass"
        }, r: function (a, b) {
            this.CLASS_NAME = "AMap.MassMarks";
            g.c.xa(this, b);
            g.l.Xk && (this.rj = !0, b.size && (b.size = g.a.nq(b.size)), this.D = !0, this.setData(a), g.a.Db(this, b), b.style ? (this.Ze(this.B, !0), this.setStyle(b.style)) : this.setStyle(this.B), this.D = !1)
        }, clear: function () {
            g.c.add(this, "clear");
            this.set("dataSources", "")
        }, getStyle: function () {
            g.c.add(this,
                "getStyle");
            return this.vm
        }, setStyle: function (a) {
            g.c.add(this, "setStyle");
            if (a instanceof Array) {
                for (var b = 0; b < a.length; b += 1) a[b].rotation_ = Math.PI * (a[b].rotation || 0) / 180, a[b].size = g.a.nq(a[b].size), a.of = Math.max(a.of || 0, a[b].size.width + a[b].anchor.x), a.cg = Math.max(a.of || 0, a[b].size.height + a[b].anchor.y);
                this.vm = a
            } else a.size && (a.size = g.a.nq(a.size)), a.rotation_ = Math.PI * (a.rotation || 0) / 180, this.Ze(a, !0), this.vm = {
                anchor: this.get("anchor"),
                url: this.get("url"),
                size: this.get("size"),
                rotation_: this.get("rotation_")
            },
                this.vm.of = this.vm.size.width + this.vm.anchor.x, this.vm.cg = this.vm.size.height + this.vm.anchor.y;
            this.q("style")
        }, setData: function (a) {
            g.c.add(this, "setData");
            this.set("dataSources", a)
        }, getData: function () {
            g.c.add(this, "getData");
            return this.get("datas") || this.get("dataSources")
        }, setMap: function (a) {
            g.c.add(this, "setMap");
            g.l.Xk && (a ? (this.get("map") && this.get("map").lk(this), this.set("map", a)) : this.get("map") && (this.get("map").lk(this), this.set("map", null, !0), this.mi = !1, this.Tg && this.Tg()))
        }, Pf: function (a) {
            return g.qb.kD(["cvector"]) ?
                (a = new g.o.ad(this, a), this.W("datas", a), a) : ["cvector"]
        }
    });
    z.o.i$ = z.o.Tb.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.CompositeLayer";
            this.mG = !0;
            g.a.Db(this, a);
            this.Nm = [];
            this.Ze(this.B)
        }, opacityChanged: function () {
            for (var a = this.get("opacity", null, !0), b = -1, c = this.Nm.length; ++b < c;) this.Nm[b].setOpacity(a)
        }, addLayer: function (a) {
            if (!this.has(a)) {
                a.zA = this;
                var b = this.get("map");
                a.setMap(b);
                this.Nm.push(a)
            }
            return this
        }, removeLayer: function (a) {
            this.has(a) && a.setMap(null);
            return this
        }, $ja: function (a) {
            if (this.has(a)) {
                delete a.zA;
                var b = this.Nm;
                a = g.a.indexOf(b, a);
                g.a.ro(b,
                    a)
            }
        }, has: function (a) {
            return -1 !== g.a.indexOf(this.Nm, a)
        }, show: function () {
            for (var a = -1, b = this.Nm.length; ++a < b;) this.Nm[a].show()
        }, hide: function () {
            for (var a = -1, b = this.Nm.length; ++a < b;) this.Nm[a].hide()
        }, setzIndex: function (a, b) {
            g.c.add(this, "setzIndex");
            this.set("zIndex", a);
            var c = this.Nm;
            if ("undefined" === typeof b) for (var d = -1, e = c.length; ++d < e;) {
                var f = c[d];
                f.setzIndex(a)
            } else (f = c[b]) && f.setzIndex(a)
        }, Pf: function (a) {
            this.e = a
        }, getLayers: function () {
            return this.Nm
        }
    });
    z.o.Wq = z.o.Tb.extend({
        M$: {visible: !0, zIndex: 20, opacity: 1, zooms: [3, 20], collision: !0, animation: !0, alwaysRender: !0},
        B: {zooms: [3, 20]},
        Vr: function () {
            this.f && this.f.pz(this.Ti)
        },
        r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.LabelsLayer";
            a = a || {};
            g.c.xa(this, a);
            arguments.callee.la.apply(this, arguments);
            this.B = this.M$;
            g.a.Db(this, a);
            this.Ze(this.B);
            this.Ti = [];
            this.ib = [];
            this.wu = [];
            this.zQ = {
                click: 0,
                mouseover: 0,
                mousemove: 0,
                mouseout: 0,
                mousedown: 0,
                mouseup: 0,
                touchstart: 0,
                touchend: 0
            }
        },
        UY: function () {
            var a =
                this;
            return g.a.oD(function (b) {
                var c = a.f;
                c ? c.pz(b) : a.WC = b
            }, 100)
        },
        pz: function (a) {
            this.q0(a)
        },
        vo: function (a, b) {
            for (var c = b._LabelMarkerId || null, d = 0; d < a.length; d++) if (a[d].data.id === c) return d;
            return -1
        },
        removeItem: function () {
        },
        wf: function (a) {
            return "undefined" === typeof a
        },
        mZ: function (a) {
            return "string" === typeof a
        },
        Efa: function (a) {
            return "number" === typeof a
        },
        eG: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
            return this.wf(a.width) || this.wf(a.height) ? this.mZ(a) ? a.split(",") : this.Efa(a) ?
                [a, a] : a : [a.width, a.height]
        },
        qea: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
            return this.wf(a.Q) || this.wf(a.P) ? this.mZ(a) ? a.split(",") : a : [a.Q, a.P]
        },
        wga: function (a) {
            "string" === typeof a && (a = a.trim(), a = a.split(" "));
            if ("[object Array]" === Object.prototype.toString.apply(a)) {
                for (var b = a.length, c = 0; c < b; c++) {
                    var d = parseInt(a[c]);
                    a[c] = isNaN(d) ? 3 : d
                }
                switch (b) {
                    case 0:
                        a = [3, 3, 3, 3];
                        break;
                    case 1:
                        a = [a[0], a[0], a[0], a[0]];
                        break;
                    case 2:
                        a = [a[0], a[1], a[0], a[1]];
                        break;
                    case 3:
                        a = [a[0], a[1],
                            a[2], a[1]]
                }
                return a
            }
            return [3, 3, 3, 3]
        },
        add: function (a) {
            g.c.add(this, "add");
            if (a) {
                a = "[object Array]" !== Object.prototype.toString.apply(a) ? [a] : a;
                for (var b = 0; b < a.length; b++) {
                    var c = a[b];
                    if (c) {
                        c.f = this;
                        var d = c.B, e = {
                            data: {
                                id: c._LabelMarkerId || void 0,
                                name: d.title || "",
                                position: this.qea(d.position) || void 0,
                                rank: d.rank || void 0
                            },
                            opts: {
                                zooms: d.zooms || void 0,
                                opacity: "number" === typeof d.opacity ? d.opacity : 1,
                                zIndex: "number" === typeof d.zIndex ? d.zIndex : 1,
                                height: "number" === typeof d.height ? d.height : 0,
                                icon: {},
                                text: {}
                            }
                        };
                        if (d.icon) {
                            var f = d.icon, h = f.size, k = f.clipSize;
                            h && (f.size = this.eG(h));
                            k && (f.clipSize = this.eG(k));
                            e.opts.icon = d.icon
                        }
                        d.text && (e.opts.text = d.text, d.text.content && (e.data.txt = d.text.content), (d = (d = e.opts.text.style) && d.padding) && (e.opts.text.style.padding = this.wga(d)));
                        this.Ti.push(e);
                        this.ib.push(c)
                    }
                }
                this.Vr();
                b = a.length;
                for (c = 0; c < b; c++) (e = a[c]) && e.U7 && e.U7()
            }
        },
        remove: function (a) {
            g.c.add(this, "remove");
            this.Ti && (a = this.vo(this.Ti, a), -1 !== a && (this.Ti.splice(a, 1), this.ib.splice(a, 1), this.Vr()))
        },
        clear: function () {
            g.c.add(this,
                "clear");
            this.f && this.f.clear();
            this.Ti = [];
            this.ib = []
        },
        Pf: function (a) {
            this.get("map") || this.set("map", a.C, !0);
            if (g.o.Wq) {
                this.f = new g.o.Wq(this, a);
                this.Ti && this.Vr();
                a = this.wu;
                if (a.length) {
                    for (var b = 0; b < a.length; b++) this.on.apply(this, a[b]);
                    this.wu = []
                }
                return this.f
            }
            return ["AMap.LabelsLayer"]
        },
        setPosition: function () {
        },
        positionChanged: function () {
        },
        on: function (a) {
            g.c.add(this, "on");
            this.f ? (this.wh(arguments), this.f.t1(a)) : this.wu.push(arguments)
        },
        off: function (a) {
            g.c.add(this, "off");
            this.f && this.f.s9(a)
        }
    });
    z.o.pL = z.o.dA.extend({
        r: function (a, b, c) {
            this.CLASS_NAME = "AMap.GroundImage";
            g.c.xa(this, c);
            c = c || {};
            this.Qg = !0;
            var d = parseFloat(c.opacity);
            isNaN(d) && (d = 1);
            arguments.callee.la.call(this, {
                url: a,
                bounds: b,
                clickable: c.clickable,
                opacity: d,
                map: c.map,
                zooms: c.zooms || [3, 20]
            });
            this.CLASS_NAME = "AMap.GroundImage"
        }, Dta: function (a) {
            this.get("bounds").contains(a.lnglat) && (a.target = this, this.q("click", a))
        }, Eta: function (a) {
            this.get("bounds").contains(a.lnglat) && (a.target = this, this.q("dblclick", a))
        }, setMap: function (a) {
            g.c.add(this,
                "setMap");
            a ? (this.get("map") && (this.get("map").lk(this), this.c2 && z.event.removeListener(this.c2), this.v2 && z.event.removeListener(this.v2)), this.set("map", a)) : this.get("map") && (this.get("map").lk(this), this.Ie.map = null)
        }, mapChanged: function () {
            this.get("map") && (this.get("map").vH(this), this.get("clickable") && (this.c2 = z.event.addListener(this.get("map"), "click", this.Dta, this), this.v2 = z.event.addListener(this.get("map"), "dblclick", this.Eta, this)))
        }
    });
    z.w.zh = g.aa.extend({
        ka: [g.va, g.Re, {Ia: g.a.Ia}], B: {extData: {}, bubble: !1, clickable: !0, draggable: !1}, r: function () {
            this.uG = g.a.ub(this)
        }, sDa: function () {
            return this.uG
        }, WBa: function () {
            this.D = !0;
            this.get("map", null, !0) && this.setMap(this.get("map"));
            this.D = !1
        }, mapChanged: function () {
            this.get("map", null, !0) && this.get("map", null, !0).WB(this)
        }, HQ: function (a) {
            var b = 0;
            a && (b = "string" === typeof a ? Math.round(parseFloat(a) / 0.14929107086948487) : a);
            return b
        }, setHeight: function (a) {
            this.height = a = a || 0;
            a = this.HQ(a);
            this.set("altitude",
                a)
        }, getHeight: function () {
            return this.height
        }, show: function () {
            g.c.add(this, "show");
            this.set("visible", !0)
        }, hide: function () {
            g.c.add(this, "hide");
            this.set("visible", !1)
        }, setMap: function (a) {
            g.c.add(this, "setMap");
            a !== this.get("map", null, !0) && (a ? (this.get("map", null, !0) && this.get("map", null, !0).iz(this), this.set("map", a)) : this.get("map", null, !0) && (this.get("map", null, !0).iz(this), this.set("map", null, !0)))
        }, getMap: function () {
            g.c.add(this, "getMap");
            return this.get("map", null, !0)
        }, setExtData: function (a) {
            g.c.add(this,
                "setExtData");
            this.set("extData", a)
        }, positionChanged: function () {
        }, getExtData: function () {
            g.c.add(this, "getExtData");
            return this.get("extData", null, !0)
        }
    });
    z.w.ad = z.w.zh.extend({
        r: function (a) {
            z.w.ad.Uc.r.apply(this, arguments)
        }, show: function () {
            g.c.add(this, "show");
            this.set("visible", !0);
            this.q("show", {type: "show", target: this})
        }, hide: function () {
            g.c.add(this, "hide");
            this.set("visible", !1);
            this.q("hide", {type: "hide", target: this})
        }, getVisible: function () {
            g.c.add(this, "getVisible");
            return this.get("visible", null, !0)
        }, getOptions: function () {
            g.c.add(this, "getOptions");
            var a = {},
                b = "map zIndex strokeColor strokeOpacity strokeWeight strokeStyle strokeDasharray extData bubble clickable".split(" "),
                c = "isOutline outlineColor geodesic path lineJoin lineCap borderWeight showDir dirColor dirImg".split(" "),
                d = ["fillColor", "fillOpacity", "path", "lineJoin", "texture"], e = ["center", "radius", "texture"],
                f = ["bounds", "texture"], h = [];
            this instanceof z.w.Xb && (h = b.concat(c));
            this instanceof z.w.zc && (h = b.concat(d));
            this instanceof z.w.$g && (h = b.concat(e).concat(d));
            this instanceof z.w.nt && (h = b.concat(e).concat(d));
            this instanceof z.w.tt && (h = b.concat(d).concat(f));
            for (b = 0; b < h.length; b += 1) a[h[b]] = this.get(h[b], null,
                !0);
            return a
        }, setOptions: function (a) {
            g.c.add(this, "setOptions");
            a.hasOwnProperty("path") && (a.path && a.path.length || (a.path = []), a.path = this.Ia(a.path));
            a.center && (a.center = this.Ia(a.center));
            var b;
            a.hasOwnProperty("map") && (b = a.map, delete a.map);
            this.Ze(a);
            void 0 !== b && (this.setMap(b), a.map = b);
            this.q("options");
            this.q("change", {type: "change", target: this})
        }, setzIndex: function (a) {
            g.c.add(this, "setzIndex");
            this.set("zIndex", a)
        }, getzIndex: function () {
            g.c.add(this, "getzIndex");
            return this.get("zIndex", null,
                !0)
        }, setDraggable: function (a) {
            g.c.add(this, "setDraggable");
            this.set("draggable", a)
        }
    });
    z.w.nF = z.w.ad.extend({
        B: {
            visible: !0,
            zIndex: 10,
            strokeColor: "#006600",
            strokeOpacity: 0.9,
            strokeWeight: 3,
            strokeStyle: "solid",
            strokeDasharray: [10, 5],
            lineJoin: "miter",
            lineCap: "butt",
            path: []
        }, r: function (a) {
            z.w.nF.Uc.r.apply(this, arguments)
        }, setPath: function (a, b) {
            g.c.add(this, "setPath");
            a && a.length || (a = []);
            a = this.Ia(a);
            this.w && this.w.get("deltaPos") && this.w.set("deltaPos", [0, 0], !0);
            this.set("path", a);
            this.q("change", {type: "change", target: this});
            b || this.q("setPath")
        }, getPath: function () {
            g.c.add(this, "getPath");
            return this.i2()
        }, reset: function () {
            var a = this.i2();
            this.w.set("deltaPos", [0, 0], !0);
            this.set("path", a)
        }, i2: function () {
            var a = this.get("path", null, !0);
            this.w && this.w.get("deltaPos") && (a = this.w.PA(a, this.w.get("deltaPos")));
            return a
        }, od: function () {
            var a = this.get("path");
            if (!a || !a.length) return null;
            a[0] instanceof g.U && (a = [a]);
            for (var b = new g.re(180, 90, -180, -90), c = 0; c < a.length; c += 1) for (var d = a[c], e = d.length - 1; 0 <= e; e -= 1) b.extend(d[e]);
            return b
        }
    });
    z.w.nF.Ob({od: "getBounds"});
    z.w.ai = g.aa.extend({
        ka: [g.va, g.Re],
        B: {
            size: new g.xd(36, 36),
            imageOffset: new g.G(0, 0),
            image: g.A.yb + "/theme/v1.3/markers/0.png",
            imageSize: null
        },
        r: function (a) {
            this.CLASS_NAME = "AMap.Icon";
            g.c.xa(this, a);
            a = a || {};
            a.size && (a.size = g.a.nq(a.size));
            a.imageSize && (a.imageSize = g.a.nq(a.imageSize));
            g.a.Db(this, a);
            this.Ze(this.B)
        },
        setImageSize: function (a) {
            g.c.add(this, "setImageSize");
            a = g.a.nq(a);
            this.set("imageSize", a)
        },
        getImageSize: function () {
            g.c.add(this, "getImageSize");
            return this.get("imageSize", null, !0)
        }
    });
    z.w.W$ = g.aa.extend({
        ka: [g.va, g.Re], B: {coords: [], type: ""}, r: function (a) {
            this.CLASS_NAME = "AMap.MarkerShape";
            g.c.xa(this, a);
            g.a.Db(this, a);
            this.Ze(this.B)
        }
    });
    z.w.rb = z.w.zh.extend({
        B: {
            cursor: "pointer",
            visible: !0,
            zIndex: 100,
            angle: 0,
            textAlign: "left",
            verticalAlign: "top",
            autoRotation: !1,
            opacity: 1,
            offset: new g.G(-9, -31),
            size: new g.G(19, 33),
            raiseOnDrag: !1,
            topWhenClick: !1,
            topWhenMouseOver: !1,
            animation: "AMAP_ANIMATION_NONE"
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.Marker";
            g.c.xa(this, a);
            a = a || {};
            this.Qg = !0;
            this.lga = g.a.ub(this);
            this.D = !0;
            a.position && (a.position = this.Ia(a.position));
            a.height && this.setHeight(a.height);
            g.a.Db(this, a);
            g.l.ye && (this.B.angle =
                0);
            this.Ze(this.B, !0);
            this.mapChanged();
            this.D = !1
        }, getAnchor: function () {
            g.c.add(this, "getAnchor");
            return this.get("anchor", null, !0)
        }, setAnchor: function (a) {
            g.c.add(this, "setAnchor");
            this.set("anchor", a)
        }, getId: function () {
            g.c.add(this, "getId");
            return this.lga
        }, setRaiseOnDrag: function (a) {
            g.c.add(this, "setRaiseOnDrag");
            this.set("raiseOnDrag", a)
        }, setPosition: function (a, b) {
            g.c.add(this, "setPosition");
            a = this.Ia(a);
            void 0 !== b && (this.D = !0, this.setHeight(b), this.D = !1);
            this.set("position", a)
        }, getPosition: function () {
            g.c.add(this,
                "getPosition");
            return this.get("position", null, !0)
        }, getBounds: function () {
            var a = this.get("position", null, !0).lb();
            return new g.re(a, a.lb())
        }, mapChanged: function () {
            this.ql("zoom");
            var a = this.get("map", null, !0);
            a && (this.get("position", null, !0) || this.set("position", a.get("center")), a.WB(this), this.W("zoom", a))
        }, getZooms: function () {
            g.c.add(this, "getZooms");
            return this.get("zooms", null, !0)
        }, zoomChanged: function () {
            var a = this.get("zooms", null, !0);
            if (a) {
                var b = this.get("zoom");
                b < a[0] || b > a[1] ? this.set("outOfZooms",
                    !0) : this.set("outOfZooms", !1);
                this.w && this.w.$ta()
            }
        }, setIcon: function (a) {
            g.c.add(this, "setIcon");
            this.set("icon", a)
        }, getIcon: function () {
            g.c.add(this, "getIcon");
            return this.get("icon", null, !0)
        }, setContent: function (a) {
            g.c.add(this, "setContent");
            this.set("content", a)
        }, getContent: function () {
            g.c.add(this, "getContent");
            return this.get("content", null, !0)
        }, getContentDom: function () {
            return this.get("contentDom", null, !0)
        }, hide: function () {
            g.c.add(this, "hide");
            this.set("visible", !1)
        }, show: function () {
            g.c.add(this,
                "show");
            this.set("visible", !0)
        }, setCursor: function (a) {
            g.c.add(this, "setCursor");
            this.set("cursor", a)
        }, setRotation: function (a) {
            g.c.add(this, "setRotation");
            g.l.ye || this.set("angle", a)
        }, setAngle: function (a) {
            g.c.add(this, "setAngle");
            g.l.ye || "number" !== typeof a || this.set("angle", a)
        }, getAngle: function () {
            g.c.add(this, "getAngle");
            return this.get("angle", null, !0)
        }, setOffset: function (a) {
            g.c.add(this, "setOffset");
            this.set("offset", a)
        }, getOffset: function () {
            g.c.add(this, "getOffset");
            return this.get("offset", null,
                !0)
        }, setTextAlign: function (a) {
            g.c.add(this, "setTextAlign");
            this.set("textAlign", a)
        }, getTextAlign: function () {
            g.c.add(this, "getTextAlign");
            return this.get("textAlign", null, !0)
        }, setVerticalAlign: function (a) {
            g.c.add(this, "setVerticalAlign");
            this.set("verticalAlign", a)
        }, getVerticalAlign: function () {
            g.c.add(this, "getVerticalAlign");
            return this.get("verticalAlign", null, !0)
        }, setzIndex: function (a) {
            g.c.add(this, "setzIndex");
            this.set("zIndex", a)
        }, getzIndex: function () {
            g.c.add(this, "getzIndex");
            return this.get("zIndex",
                null, !0)
        }, setOpacity: function (a) {
            g.c.add(this, "setOpacity");
            this.set("opacity", a)
        }, setDraggable: function (a) {
            g.c.add(this, "setDraggable");
            this.set("draggable", a)
        }, getDraggable: function () {
            g.c.add(this, "getDraggable");
            return this.get("draggable", null, !0)
        }, moveTo: function (a, b, c) {
            g.c.add(this, "moveTo");
            a = this.Ia(a);
            this.set("move", {Yf: a, speed: b, sb: c})
        }, moveAlong: function (a, b, c, d) {
            g.c.add(this, "moveAlong");
            if (!(2 > a.length)) {
                a = this.Ia(a);
                for (var e = [a[0]], f = a[0], h = 1; h < a.length; h += 1) f.cb(a[h]) || e.push(a[h]);
                this.set("move", {Yf: e, speed: b, sb: c, Ama: d})
            }
        }, stopMove: function () {
            g.c.add(this, "stopMove");
            this.set("move", !1)
        }, pauseMove: function () {
            g.c.add(this, "pauseMove");
            var a = this.get("move");
            if (!a) return !1;
            a.action = "pause";
            this.set("move", a);
            return !0
        }, resumeMove: function () {
            g.c.add(this, "resumeMove");
            var a = this.get("move");
            if (!a) return !1;
            a.action = "resume";
            this.set("move", a);
            return !0
        }, setShadow: function (a) {
            g.c.add(this, "setShadow");
            this.set("shadow", a)
        }, getShadow: function () {
            g.c.add(this, "getShadow");
            return this.get("shadow",
                null, !0)
        }, setClickable: function (a) {
            g.c.add(this, "setClickable");
            a !== this.get("clickable", null, !0) && this.set("clickable", a)
        }, getClickable: function () {
            g.c.add(this, "getClickable");
            return this.get("clickable", null, !0)
        }, setTitle: function (a, b) {
            g.c.add(this, "setTitle");
            "string" === typeof a && this.set("title", a, b)
        }, getTitle: function () {
            g.c.add(this, "getTitle");
            return this.get("title", null, !0)
        }, setLabel: function (a) {
            g.c.add(this, "setLabel");
            a && !g.a.vi(a) && (a = g.extend({}, this.get("label"), a));
            this.set("label",
                a)
        }, getLabel: function () {
            g.c.add(this, "getLabel");
            return this.get("label", null, !0)
        }, setTop: function (a, b) {
            g.c.add(this, "setTop");
            this.set("isTop", a, b)
        }, getTop: function () {
            g.c.add(this, "getTop");
            return this.get("isTop", null, !0)
        }, setShape: function (a, b) {
            g.c.add(this, "setShape");
            this.set("shape", a, b)
        }, getShape: function () {
            g.c.add(this, "getShape");
            return this.get("shape", null, !0)
        }, setAnimation: function (a, b) {
            g.c.add(this, "setAnimation");
            this.set("animation", a, b)
        }, getAnimation: function () {
            g.c.add(this, "getAnimation");
            return this.get("animation", null, !0)
        }, getMap: function () {
            g.c.add(this, "getMap");
            return this.get("map", null, !0)
        }, markOnAMAP: function (a) {
            g.c.add(this, "markOnAMAP");
            a = a || {};
            var b = {};
            b.name = a.name || this.get("name", null, !0) || "";
            a = this.Ia(a.position) || this.get("position", null, !0);
            b.y = a.P;
            b.x = a.Q;
            g.Yh.Xs(g.Yh.dqa(b))
        }
    });
    z.w.P$ = z.w.zh.extend({
        B: {position: null, zooms: [3, 20], opacity: 1, visible: !0}, r: function (a) {
            a = a || {};
            this.CLASS_NAME = this.CLASS_NAME || "AMap.LabelMarker";
            g.c.xa(this, a);
            arguments.callee.la.apply(this, arguments);
            this._LabelMarkerId = g.a.ub(this);
            g.a.Db(this, a);
            this.Ze(this.B, !0);
            this.AQ = [];
            this.aC = {}
        }, vo: function (a, b) {
            for (var c = b._LabelMarkerId || null, d = 0, e = a.length; d < e; d++) if (a[d].data.id === c) return d;
            return -1
        }, U7: function () {
            var a = this.AQ || [];
            if (a.length) {
                for (var b = 0, c = a.length; b < c; b++) this.on.apply(this,
                    a[b]);
                this.AQ = []
            }
        }, getBounds: function () {
            g.c.add(this, "getBounds");
            var a = this.get("position", null, !0);
            try {
                return "string" === typeof a ? a = new g.U(a.split(",")) : "[object Array]" == Object.prototype.toString.apply(a) && (a = new g.U(a[0], a[1])), new g.re(a, a.lb())
            } catch (b) {
                return null
            }
        }, getPosition: function () {
            g.c.add(this, "getPosition");
            var a = this.f.Ti, b = this.vo(a, this);
            return -1 !== b ? a[b].data.position : null
        }, setPosition: function (a) {
            g.c.add(this, "setPosition");
            var b = this.f.Ti, c = this.vo(b, this);
            -1 !== c && (b[c].data.position =
                a);
            this.f.Vr()
        }, getZooms: function () {
            g.c.add(this, "getZooms");
            var a = this.f.Ti, b = this.vo(a, this);
            return -1 !== b ? a[b].opts.zooms : null
        }, setZooms: function (a) {
            g.c.add(this, "setZooms");
            var b = this.f.Ti, c = this.vo(b, this);
            -1 !== c && (b[c].opts.zooms = a);
            this.f.Vr()
        }, getOpacity: function () {
            g.c.add(this, "getOpacity");
            var a = this.f.Ti, b = this.vo(a, this);
            return -1 !== b ? a[b].opts.opacity : null
        }, setOpacity: function (a) {
            g.c.add(this, "setOpacity");
            var b = this.f.Ti, c = this.vo(b, this);
            -1 !== c && (b[c].opts.opacity = a);
            this.f.Vr()
        }, setIcon: function (a) {
            var b =
                this.f.Ti, c = this.vo(b, this);
            if (-1 !== c) {
                var d = a.size, e = a.clipSize;
                d && (a.size = this.f.eG(d));
                e && (a.clipSize = this.f.eG(e));
                b[c].opts.icon = g.extend({}, b[c].opts.icon, a)
            }
            this.f.Vr()
        }, setText: function (a) {
            var b = this.f.Ti, c = this.vo(b, this);
            -1 !== c && (b[c].data.txt = void 0 == a.content ? b[c].data.txt : a.content, b[c].opts.text = g.extend({}, b[c].opts.text, a), a.style && (b[c].opts.text.style = g.extend({}, b[c].opts.text.style, a.style)), this.f.Vr())
        }, on: function (a, b) {
            g.c.add(this, "on");
            if (this.f) {
                this.aC[a] = b;
                var c = this, d =
                    this.f;
                d._markerBindArray || (d._markerBindArray = {});
                var e = this._LabelMarkerId;
                d._markerBindArray[e] || (d._markerBindArray[e] = this);
                d.zQ[a] ? d.zQ[a]++ : (d.zQ[a] = 1, this.f.on(a, function (a) {
                    var b = a.type;
                    if (a && a.data && a.data.data && a.data.data.id && a.data.data.id) {
                        var d = a.data.data.id,
                            b = (d = c.f && c.f._markerBindArray && c.f._markerBindArray[d]) && d.aC[b];
                        d && b && (a.target = d, "function" === typeof b && b(a))
                    }
                }))
            } else this.AQ.push(arguments)
        }, off: function (a) {
            g.c.add(this, "off");
            this.aC[a] && delete this.aC[a];
            Object.keys(this.aC).length ||
            delete this.f._markerBindArray[this._LabelMarkerId]
        }
    });
    z.w.Hn = z.w.zh.extend({
        B: {visible: !1, items: []}, r: function (a) {
            this.CLASS_NAME = "AMap.ContextMenu";
            g.c.xa(this, a);
            this.Qg = !0;
            g.a.Db(this, a);
            this.B.items = [];
            this.Ze(this.B)
        }, addItem: function (a, b, c) {
            g.c.add(this, "addItem");
            this.get("items").push({Fn: a, sb: b, PJ: c});
            this.q("items")
        }, removeItem: function (a, b) {
            g.c.add(this, "removeItem");
            var c = this.get("items"), d, e;
            for (e = 0; e < c.length; e += 1) if (d = c[e], d.Fn === a && d.sb === b) {
                c.splice(e, 1);
                break
            }
            this.q("items")
        }, open: function (a, b) {
            g.c.add(this, "open");
            this.D = !0;
            b = g.a.Ia(b);
            this.set("position", b);
            this.map ? this.map && this.map !== a && (this.map.iz(this), this.map = a, this.setMap(a)) : (this.map = a, this.setMap(a));
            this.q("open", {type: "open", target: this});
            this.D = !1
        }, close: function () {
            g.c.add(this, "close");
            this.D = !0;
            this.setMap(null);
            this.map && (this.map = this.map.Tx = null, this.q("close", {type: "close", target: this}));
            this.D = !1
        }
    });
    z.w.Qe = z.w.zh.extend({
        B: {
            visible: !0,
            offset: new g.G(0, 0),
            showShadow: !1,
            closeWhenClickMap: !1,
            retainWhenClose: !0,
            autoMove: !0,
            altitude: 0,
            anchor: "bottom-center"
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.InfoWindow";
            g.c.xa(this, a);
            a = a || {};
            this.Qg = !0;
            a && a.size && (a.size = g.a.nq(a.size));
            g.a.Db(this, a);
            this.Ze(this.B);
            a.position && this.set("position", g.a.Ia(a.position), !0);
            a.height && this.set("altitude", this.HQ(a.height), !0)
        }, open: function (a, b, c) {
            g.c.add(this, "open");
            b = g.a.Ia(b);
            if (a && !this.MK && (b =
                b || this.get("position", null, !0))) {
                this.q("change", {type: "change", target: this});
                c = this.HQ(c) || this.get("altitude");
                var d = this.get("map", null, !0);
                d && d === a ? (this.set("altitude", c, !0), this.set("position", b)) : (this.map = a, a.mm && a.mm.close(), this.set("position", b, !0), this.set("altitude", c, !0), this.D = !0, this.setMap(a), this.D = !1);
                this.q("open", {type: "open", target: this})
            }
        }, close: function () {
            g.c.add(this, "close");
            this.w && this.w.map && (this.D = !0, this.setMap(null), this.map = null, this.q("change", {
                type: "change",
                target: this
            }),
                this.D = !1)
        }, getAnchor: function () {
            g.c.add(this, "getAnchor");
            return this.get("anchor", null, !0)
        }, setAnchor: function (a) {
            g.c.add(this, "setAnchor");
            this.set("anchor", a);
            this.q("change", {type: "change", target: this})
        }, setContent: function (a) {
            g.c.add(this, "setContent");
            this.set("content", a);
            this.q("change", {type: "change", target: this})
        }, getContentU: function () {
            g.c.add(this, "getContentU");
            return this.get("content", null, !0)
        }, getContentDom: function () {
            return this.get("contentDom", null, !0)
        }, getContent: function () {
            g.c.add(this,
                "getContent");
            return this.get("content", null, !0)
        }, setPosition: function (a) {
            g.c.add(this, "setPosition");
            a = g.a.Ia(a);
            this.set("position", a);
            this.q("change", {type: "change", target: this})
        }, setOffset: function (a) {
            g.c.add(this, "setOffset");
            this.set("offset", a);
            this.q("change", {type: "change", target: this})
        }, getPosition: function () {
            g.c.add(this, "getPosition");
            return this.get("position", null, !0)
        }, setSize: function (a) {
            g.c.add(this, "setSize");
            a = g.a.nq(a);
            this.set("size", a);
            this.q("change", {type: "change", target: this})
        },
        getSize: function (a) {
            g.c.add(this, "getSize");
            var b = this.get("size", null, !0);
            if (b) return b;
            if (this.w && !a) return new g.xd(this.w.lh.offsetWidth, this.w.lh.offsetHeight)
        }, getIsOpen: function () {
            g.c.add(this, "getIsOpen");
            return !!this.get("map")
        }
    });
    z.w.Xb = z.w.nF.extend({
        B: {
            isOutline: !1,
            outlineColor: "#000000",
            geodesic: !1,
            dirColor: "white",
            borderWeight: 1
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.Polyline";
            g.c.xa(this, a);
            this.D = !0;
            z.w.Xb.Uc.r.apply(this, arguments);
            this.Qg = !0;
            a = a || {};
            a.zIndex = "number" === typeof a.zIndex ? a.zIndex : 50;
            a.path && (a.path = this.Ia(a.path));
            g.a.Db(this, a);
            this.setOptions(this.B);
            this.D = !1
        }, getLength: function () {
            g.c.add(this, "getLength");
            for (var a = this.get("path"), b = 0, c = 0; c < a.length - 1; c += 1) b += a[c].we(a[c + 1]);
            return parseFloat(b.toFixed(2))
        }
    });
    (function (a) {
        function b(a, b, c, d) {
            if (1 <= a) return d;
            var e = 1 - a;
            return e * e * b + 2 * e * a * c + a * a * d
        }

        function c(a, b, c, d, e) {
            if (1 <= a) return e;
            var f = 3 * (c[0] - b[0]), h = 3 * (d[0] - c[0]) - f, s = 3 * (c[1] - b[1]);
            c = 3 * (d[1] - c[1]) - s;
            return [(e[0] - b[0] - f - h) * Math.pow(a, 3) + h * Math.pow(a, 2) + f * a + b[0], (e[1] - b[1] - s - c) * Math.pow(a, 3) + c * Math.pow(a, 2) + s * a + b[1]]
        }

        function d(a, c, d, e) {
            return [b(a, c[0], d[0], e[0]), b(a, c[1], d[1], e[1])]
        }

        function e(b, c) {
            c = a.a.Ia(c);
            return b.pD(c, 20).pl()
        }

        function f(b, c) {
            a.a.isArray(c) && (c = new a.G(c[0], c[1]));
            return b.RD(c,
                20)
        }

        function h(b, f, h, n, p, q) {
            var r = null;
            if (b && h && h.length) {
                b = [b];
                b.push.apply(b, h);
                b.push(f);
                h = 0;
                for (r = b.length; h < r; h++) b[h] = e(n, b[h]);
                h = a.extend({tolerance: 4, interpolateNumLimit: [3, 300]}, q);
                q = h.tolerance;
                h = h.interpolateNumLimit;
                q = Math.max(2, q);
                for (var s = r = 0, u = 0, v = b.length; u < v - 1; u++) var w = b[u], t = b[u + 1], r = r + Math.abs(t[0] - w[0]), s = s + Math.abs(t[1] - w[1]);
                a:{
                    p = Math.min(h[1], Math.max(h[0], Math.round(Math.max(r, s) / p / q)));
                    q = null;
                    switch (b.length) {
                        case 3:
                            q = d;
                            break;
                        case 4:
                            q = c;
                            break;
                        default:
                            r = null;
                            break a
                    }
                    h = [];
                    r = [0].concat(b);
                    for (s = 1; s < p - 2; s++) r[0] = s / p, h.push(q.apply(null, r));
                    h.push(b[b.length - 1]);
                    r = h
                }
            }
            return r || [e(n, f)]
        }

        a.qw = {
            GFa: d, lCa: c, hI: function () {
                function a(b, c, d) {
                    return (((1 - 3 * d + 3 * c) * b + (3 * d - 6 * c)) * b + 3 * c) * b
                }

                function b(a) {
                    return a
                }

                var c = {}, d = "function" === typeof Float32Array;
                return function (e, f, h, s) {
                    function u(b) {
                        if (0 === b) b = 0; else if (1 === b) b = 1; else {
                            for (var c = 0, d = 1; 10 !== d && w[d] <= b; ++d) c += 0.1;
                            --d;
                            var d = c + (b - w[d]) / (w[d + 1] - w[d]) * 0.1,
                                l = 3 * (1 - 3 * h + 3 * e) * d * d + 2 * (3 * h - 6 * e) * d + 3 * e;
                            if (0.001 <= l) {
                                for (c = 0; 4 > c; ++c) {
                                    l = 3 *
                                        (1 - 3 * h + 3 * e) * d * d + 2 * (3 * h - 6 * e) * d + 3 * e;
                                    if (0 === l) break;
                                    d -= (a(d, e, h) - b) / l
                                }
                                b = d
                            } else if (0 === l) b = d; else {
                                var d = c, c = c + 0.1, m, n = 0;
                                do m = d + (c - d) / 2, l = a(m, e, h) - b, 0 < l ? c = m : d = m; while (1E-7 < Math.abs(l) && 10 > ++n);
                                b = m
                            }
                            b = a(b, f, s)
                        }
                        return b
                    }

                    if (!(0 <= e && 1 >= e && 0 <= h && 1 >= h)) throw Error("bezier x values must be in [0, 1] range");
                    var v = arguments.toString();
                    if (c[v]) return c[v];
                    if (e === f && h === s) return b;
                    for (var w = d ? new Float32Array(11) : Array(11), t = 0; 11 > t; ++t) w[t] = a(0.1 * t, e, h);
                    return c[v] = u
                }
            }(), C3: function (a, b, c, d) {
                var e, f, r = [];
                e = 0;
                for (f =
                         a.length; e < f; e += 1) r.push.apply(r, h(a[e - 1], a[e], a[e].controlPoints, b, c, d));
                return r
            }, Qpa: function (a, b, c, d) {
                a = this.C3(a, b, c, d);
                c = [];
                d = 0;
                for (var e = a.length; d < e; d++) c.push(f(b, a[d]));
                return c
            }
        }
    })(g);
    z.w.Vz = z.w.Xb.extend({
        B: {tolerance: 4, interpolateNumLimit: [3, 300]}, r: function (a) {
            this.CLASS_NAME = "AMap.BezierCurve";
            g.c.xa(this, a);
            z.w.Vz.Uc.r.apply(this, arguments)
        }, getLength: function () {
            g.c.add(this, "getLength");
            this.get("map");
            this.D = !0;
            var a = this.getInterpolateLngLats();
            this.D = !1;
            return g.Vq.distanceOfLine(a)
        }, getInterpolateLngLats: function () {
            g.c.add(this, "getInterpolateLngLats");
            var a = this.get("map");
            return g.qw.Qpa(this.get("path"), a && a.hj || g.Xh.mL, Math.pow(2, 2), this.B)
        }, getSerializedPath: function () {
            g.c.add(this,
                "getSerializedPath");
            for (var a = this.get("path", null, !0), b = [], c = 0, d = a.length; c < d; c++) {
                var e = a[c];
                if (e instanceof g.U) {
                    var f = [];
                    if (e.controlPoints) for (var h = 0, k = e.controlPoints.length; h < k; h++) f.push(e.controlPoints[h].dR()), f.push(e.controlPoints[h].$Q());
                    f.push(e.dR());
                    f.push(e.$Q());
                    b.push(f)
                } else b.push(e)
            }
            return b
        }, Ia: function (a) {
            var b = typeof a[0];
            if (g.a.isArray(a) && "object" === b) {
                for (b = 0; b < a.length; b += 1) a[b] = this.Gia(a[b]);
                return a
            }
            return [this.kFa(a)]
        }, Gia: function (a) {
            var b;
            if (a instanceof g.U) b =
                a; else {
                b = typeof a[0];
                var c, d, e = [];
                if ("string" === b || "number" === b) {
                    d = a.length;
                    if (d % 2) throw Error("LngLat number should be even, now it's " + d);
                    b = new g.U(a[d - 2], a[d - 1]);
                    c = 0;
                    for (d -= 2; c < d; c += 2) e.push(new g.U(a[c], a[c + 1]))
                } else if (g.a.isArray(a[0])) for (d = a.length, b = new g.U(a[d - 1][0], a[d - 1][1]), c = 0, d -= 1; c < d; c++) e.push(new g.U(a[c][0], a[c][1])); else throw Error("AMap.LngLat expected, now it's " + a);
                b && e.length && (b.controlPoints = g.a.Ia(e))
            }
            if (b.controlPoints && 2 < b.controlPoints.length) throw Error("Control Points Number should be 1 or 2 !");
            return b
        }
    });
    z.w.zc = z.w.nF.extend({
        r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.Polygon";
            g.c.xa(this, a);
            this.D = !0;
            z.w.zc.Uc.r.apply(this, arguments);
            this.Qg = !0;
            a = a || {};
            a.zIndex = "number" === typeof a.zIndex ? a.zIndex : 10;
            a.path && (a.path = this.Ia(a.path));
            g.a.Db(this, g.extend({fillColor: "#FFAA00", fillOpacity: 0.9}, a));
            this.setOptions(this.B);
            this.D = !1
        }, kR: function (a) {
            var b = 6378137 * Math.PI / 180, c = 0, d = a.length;
            if (3 > d) return 0;
            for (var e = 0; e < d - 1; e += 1) var f = a[e], h = a[e + 1], k = f.Q * b * Math.cos(f.P * Math.PI / 180), f = f.P * b, l = h.Q *
                b * Math.cos(h.P * Math.PI / 180), c = c + (k * h.P * b - l * f);
            e = a[e];
            a = a[0];
            d = e.Q * b * Math.cos(e.P * Math.PI / 180);
            e = e.P * b;
            h = a.Q * b * Math.cos(a.P * Math.PI / 180);
            c += d * a.P * b - h * e;
            return 0.5 * Math.abs(c)
        }, getArea: function () {
            g.c.add(this, "getArea");
            var a = this.get("path", null, !0), b;
            if (!a.length || a[0] instanceof g.U) b = this.kR(a); else {
                b = this.kR(a[0]);
                for (var c = 1; c < a.length; c += 1) b -= this.kR(a[c])
            }
            return Number(b.toFixed(2))
        }, toString: function () {
            g.c.add(this, "toString");
            return this.get("path").join(";")
        }, contains: function (a) {
            g.c.add(this,
                "contains");
            a = g.a.Ia(a);
            var b = this.get("path");
            b.length && b[0] instanceof g.U && (b = [b]);
            a = [a.Q, a.P];
            for (var c, d = 0, e = b.length; d < e && (c = this.ima(b[d]), g.wd.$p(c) || c.reverse(), c = g.wd.Rd(a, c, 0 === d ? !0 : !1), 0 < d && (c = !c), c); d += 1) ;
            return c
        }, ima: function (a) {
            for (var b = [], c = 0; c < a.length; c += 1) b.push([a[c].Q, a[c].P]);
            return b
        }
    });
    z.w.$g = z.w.ad.extend({
        B: {
            visible: !0,
            zIndex: 10,
            strokeColor: "#006600",
            strokeOpacity: 0.9,
            strokeWeight: 3,
            strokeStyle: "solid",
            strokeDasharray: [10, 5],
            radius: 1E3,
            fillColor: "#006600",
            fillOpacity: 0.9,
            unit: "miter"
        }, r: function (a) {
            this.CLASS_NAME = this.CLASS_NAME || "AMap.Circle";
            g.c.xa(this, a);
            this.D = !0;
            z.w.$g.Uc.r.apply(this, arguments);
            a = a || {};
            a.center && (a.center = g.a.Ia(a.center));
            a.zIndex = "number" === typeof a.zIndex ? a.zIndex : 10;
            g.a.dk(a.radius, "string") && (a.radius = parseFloat(a.radius), isNaN(a.radius) && delete a.radius);
            g.a.Db(this, a);
            this.Qg = this.B.center ? !0 : !1;
            this.setOptions(this.B);
            this.D = !1
        }, setCenter: function (a, b) {
            g.c.add(this, "setCenter");
            (a = g.a.Ia(a)) && a instanceof g.U && (this.w && this.w.get("deltaPos") && this.w.set("deltaPos", [0, 0], !0), this.set("center", a), this.q("change", {
                type: "change",
                target: this
            }), this.Qg || (this.Qg = !0, this.get("map") && this.get("map").q("overlays")), b || this.q("setCenter"))
        }, getCenter: function () {
            g.c.add(this, "getCenter");
            var a = this.get("center", null, !0);
            this.w && this.w.get("deltaPos") && (a =
                this.w.PA([a], this.w.get("deltaPos"))[0]);
            return a
        }, reset: function () {
            var a = this.get("center", null, !0);
            this.w && this.w.get("deltaPos") && (a = this.w.PA([a], this.w.get("deltaPos"))[0], this.w.set("deltaPos", [0, 0], !0));
            this.set("center", a)
        }, setRadius: function (a, b) {
            g.c.add(this, "setRadius");
            this.set("radius", a);
            this.q("change", {type: "change", target: this});
            b || this.q("setRadius")
        }, getPath: function (a) {
            g.c.add(this, "getPath");
            a = a || 36;
            for (var b = this.get("center", null, !0), c = this.get("radius", null, !0), d = [], e = 0; e <
            a; e += 1) {
                var f = Math.PI * e / a * 2, h = Math.cos(f) * c, f = Math.sin(f) * c;
                d.push(b.offset(h, f))
            }
            return d
        }, getRadius: function () {
            g.c.add(this, "getRadius");
            return this.get("radius", null, !0)
        }, getBounds: function () {
            var a = this.get("center"), b = this.get("radius");
            if (!a) return null;
            var c = a.offset(-b, -b), a = a.offset(b, b);
            return new g.re(c, a)
        }, contains: function (a) {
            g.c.add(this, "contains");
            return this.get("center").we(a) <= this.get("radius") ? !0 : !1
        }
    });
    z.w.vV = z.w.$g.extend({
        r: function (a) {
            this.CLASS_NAME = "AMap.CircleMarker";
            g.c.xa(this, a);
            a = a || {};
            a.unit = "px";
            void 0 === a.radius ? a.radius = 20 : g.a.dk(a.radius, "string") && (a.radius = parseFloat(a.radius), isNaN(a.radius) && (a.radius = 20));
            z.w.vV.Uc.r.apply(this, arguments)
        }, getBounds: function () {
            this.D = !0;
            var a = this.getCenter();
            this.D = !1;
            return new g.re(a, a.lb())
        }, contains: function (a) {
            g.c.add(this, "contains");
            this.D = !0;
            var b = this.getMap();
            this.D = !1;
            if (!b) return !1;
            var c = this.get("center");
            b.D = !0;
            var d = !1;
            c.we(a) <=
            this.get("radius") * b.getResolution(c) && (d = !0);
            b.D = !1;
            return d
        }
    });
    var pc = g.aa.extend({
        r: function (a) {
            var b = Array(3), c;
            c = a instanceof Array ? a : a instanceof g.yl || a instanceof g.Pa ? a.elements : arguments;
            b[0] = c[0] || 0;
            b[1] = c[1] || 0;
            b[2] = c[2] || 0;
            this.elements = b
        }, length: function () {
            return Math.sqrt(this.x5())
        }, x5: function () {
            var a = this.elements;
            return a[0] * a[0] + a[1] * a[1] + a[2] * a[2]
        }, normalize: function () {
            var a = this.elements, b = a[0], c = a[1], d = a[2], e = Math.sqrt(b * b + c * c + d * d);
            if (e) {
                if (1 === e) return this
            } else return a[0] = 0, a[1] = 0, a[2] = 0, this;
            e = 1 / e;
            a[0] = b * e;
            a[1] = c * e;
            a[2] = d * e;
            return this
        },
        lb: function () {
            return new g.Pa(this)
        }, copy: function (a) {
            var b = this.elements;
            a = a.elements;
            b[0] = a[0];
            b[1] = a[1];
            b[2] = a[2];
            return this
        }, set: function (a, b, c) {
            var d = this.elements;
            d[0] = a;
            d[1] = b;
            d[2] = c
        }, cb: function (a) {
            var b = this.elements;
            a = a.elements;
            return b[0] === a[0] && b[1] === a[1] && b[2] === a[2]
        }, zn: function (a) {
            var b = this.elements;
            b[0] *= a;
            b[1] *= a;
            b[2] *= a;
            return this
        }, add: function (a) {
            var b = this.elements;
            a = a.elements;
            b[0] += a[0];
            b[1] += a[1];
            b[2] += a[2];
            return this
        }, gla: function (a, b) {
            var c = a.elements, d = b.elements,
                e = this.elements;
            e[0] = c[0] + d[0];
            e[1] = c[1] + d[1];
            e[2] = c[2] + d[2];
            return this
        }, sub: function (a) {
            a = a.elements;
            var b = this.elements;
            b[0] -= a[0];
            b[1] -= a[1];
            b[2] -= a[2];
            return this
        }, uz: function (a, b) {
            var c = a.elements, d = b.elements, e = this.elements;
            e[0] = c[0] - d[0];
            e[1] = c[1] - d[1];
            e[2] = c[2] - d[2];
            return this
        }, Or: function (a) {
            a = a.elements;
            var b = this.elements;
            b[0] = b[1] * a[2] - b[2] * a[1];
            b[1] = b[2] * a[0] - b[0] * a[2];
            b[2] = b[0] * a[1] - b[1] * a[0];
            return this
        }, Xx: function (a, b) {
            var c = a.elements, d = b.elements, e = this.elements;
            e[0] = c[1] * d[2] -
                c[2] * d[1];
            e[1] = c[2] * d[0] - c[0] * d[2];
            e[2] = c[0] * d[1] - c[1] * d[0];
            return this
        }, yf: function (a) {
            a = a.elements;
            var b = this.elements;
            return b[0] * a[0] + b[1] * a[1] + b[2] * a[2]
        }, we: function (a) {
            return Math.sqrt(this.B2(a))
        }, B2: function (a) {
            var b = a.elements, c = this.elements;
            a = c[0] - b[0];
            var d = c[1] - b[1], b = c[2] - b[2];
            return a * a + d * d + b * b
        }, Of: function (a) {
            var b = this.elements[0], c = this.elements[1], d = this.elements[2];
            a = a.elements;
            var e = 1 / (a[3] * b + a[7] * c + a[11] * d + a[15]);
            this.elements[0] = (a[0] * b + a[4] * c + a[8] * d + a[12]) * e;
            this.elements[1] =
                (a[1] * b + a[5] * c + a[9] * d + a[13]) * e;
            this.elements[2] = (a[2] * b + a[6] * c + a[10] * d + a[14]) * e;
            return this
        }
    });
    g.Pa = pc;
    g.Pa.Ob({
        yf: "dot",
        lb: "clone",
        add: "add",
        sub: "sub",
        gla: "addVectors",
        uz: "subVectors",
        Xx: "crossVectors",
        normalize: "normalize",
        length: "length"
    });
    var qc = g.aa.extend({
        r: function (a) {
            var b = Array(4), c;
            c = a instanceof Array ? a : arguments;
            b[0] = c[0];
            b[1] = c[1];
            b[2] = c[2];
            b[3] = c[3] || 1;
            this.elements = b
        }, copy: function (a) {
            var b = this.elements;
            a = a.elements;
            b[0] = a[0];
            b[1] = a[1];
            b[2] = a[2];
            b[3] = void 0 !== a[3] ? a[3] : 1;
            return this
        }, multiply: function (a) {
            var b = this.elements;
            b[0] *= a;
            b[1] *= a;
            b[2] *= a;
            b[3] *= a
        }, Of: function (a) {
            var b = this.elements[0], c = this.elements[1], d = this.elements[2], e = this.elements[3];
            a = a.elements;
            this.elements[0] = a[0] * b + a[4] * c + a[8] * d + a[12] * e;
            this.elements[1] =
                a[1] * b + a[5] * c + a[9] * d + a[13] * e;
            this.elements[2] = a[2] * b + a[6] * c + a[10] * d + a[14] * e;
            this.elements[3] = a[3] * b + a[7] * c + a[11] * d + a[15] * e;
            return this
        }
    });
    g.yl = qc;

    function rc(a, b) {
        this.Yy = void 0 !== a ? a : new g.Pa(1, 0, 0);
        this.oC = void 0 !== b ? b : 0
    }

    g.Cw = rc;
    rc.prototype = {
        set: function (a, b) {
            this.Yy.copy(a);
            this.oC = b;
            return this
        }, normalize: function () {
            var a = 1 / this.Yy.length();
            this.Yy.zn(a);
            this.oC *= a;
            return this
        }, aI: function (a) {
            return this.Yy.yf(a) + this.oC
        }
    };

    function sc(a, b, c, d, e) {
        a.Yy.set(b, c, d);
        a.oC = e;
        return a
    }

    function vc(a, b, c, d, e, f) {
        this.OD = [void 0 !== a ? a : new g.Cw, void 0 !== b ? b : new g.Cw, void 0 !== c ? c : new g.Cw, void 0 !== d ? d : new g.Cw, void 0 !== e ? e : new g.Cw, void 0 !== f ? f : new g.Cw]
    }

    g.FV = vc;
    vc.prototype = {
        set: function (a, b, c, d, e, f) {
            var h = this.OD;
            h[0].copy(a);
            h[1].copy(b);
            h[2].copy(c);
            h[3].copy(d);
            h[4].copy(e);
            h[5].copy(f);
            return this
        }, lb: function () {
            return (new g.FV).copy(this)
        }, copy: function (a) {
            for (var b = this.OD, c = 0; 6 > c; c++) b[c].copy(a.OD[c]);
            return this
        }, eJ: function () {
            var a = new g.Pa, b = new g.Pa, c = a.elements, d = b.elements;
            return function (e) {
                var f = this.OD, h = e.max.elements;
                e = e.min.elements;
                for (var k = 0; 6 > k; k++) {
                    var l = f[k], m = l.Yy.elements;
                    c[0] = 0 < m[0] ? e[0] : h[0];
                    d[0] = 0 < m[0] ? h[0] : e[0];
                    c[1] = 0 < m[1] ?
                        e[1] : h[1];
                    d[1] = 0 < m[1] ? h[1] : e[1];
                    c[2] = 0 < m[2] ? e[2] : h[2];
                    d[2] = 0 < m[2] ? h[2] : e[2];
                    m = l.aI(a);
                    l = l.aI(b);
                    if (0 > m && 0 > l) return !1
                }
                return !0
            }
        }()
    };
    (function (a) {
        function b(a) {
            this.elements = a || [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
        }

        a.UV = function (a) {
            this.elements = [a.elements[0], a.elements[1], a.elements[2], a.elements[4], a.elements[5], a.elements[6], a.elements[8], a.elements[9], a.elements[10]]
        };
        b.prototype.aU = function () {
            var a = this.elements;
            a[0] = 1;
            a[4] = 0;
            a[8] = 0;
            a[12] = 0;
            a[1] = 0;
            a[5] = 1;
            a[9] = 0;
            a[13] = 0;
            a[2] = 0;
            a[6] = 0;
            a[10] = 1;
            a[14] = 0;
            a[3] = 0;
            a[7] = 0;
            a[11] = 0;
            a[15] = 1
        };
        b.prototype.set = function (a) {
            if (a.elements !== this.elements) return this.elements = a.elements.slice(0),
                this
        };
        b.prototype.toFixed = function (b) {
            for (var d = this.elements, e = 0; 16 > e; ++e) 0 !== d[e] && (d[e] = a.a.hc(d[e], b));
            return this
        };
        b.prototype.concat = function (a) {
            var b, e, f, h, k, l, m;
            e = b = this.elements;
            f = a.elements;
            if (b === f) for (f = Array(16), a = 0; 16 > a; ++a) f[a] = b[a];
            for (a = 0; 4 > a; a++) h = e[a], k = e[a + 4], l = e[a + 8], m = e[a + 12], b[a] = h * f[0] + k * f[1] + l * f[2] + m * f[3], b[a + 4] = h * f[4] + k * f[5] + l * f[6] + m * f[7], b[a + 8] = h * f[8] + k * f[9] + l * f[10] + m * f[11], b[a + 12] = h * f[12] + k * f[13] + l * f[14] + m * f[15];
            return this
        };
        b.multiply = function (b, d) {
            var e = Array(16), f, h,
                k, l, m, n, p;
            k = h = b.elements;
            l = d.elements;
            if (h === l) for (f = 0; 16 > f; ++f) e[f] = h[f];
            for (f = 0; 4 > f; f++) h = k[f], m = k[f + 4], n = k[f + 8], p = k[f + 12], e[f] = h * l[0] + m * l[1] + n * l[2] + p * l[3], e[f + 4] = h * l[4] + m * l[5] + n * l[6] + p * l[7], e[f + 8] = h * l[8] + m * l[9] + n * l[10] + p * l[11], e[f + 12] = h * l[12] + m * l[13] + n * l[14] + p * l[15];
            return new a.Hc(e)
        };
        b.prototype.multiply = b.prototype.concat;
        b.prototype.uh = function (b) {
            var d = this.elements;
            b = b.elements;
            var e = new a.yl, f = e.elements;
            f[0] = b[0] * d[0] + b[1] * d[4] + b[2] * d[8] + b[3] * d[12];
            f[1] = b[0] * d[1] + b[1] * d[5] + b[2] * d[9] + b[3] *
                d[13];
            f[2] = b[0] * d[2] + b[1] * d[6] + b[2] * d[10] + b[3] * d[14];
            f[3] = b[0] * d[3] + b[1] * d[7] + b[2] * d[11] + b[3] * d[15];
            return e
        };
        b.prototype.BE = function () {
            var a, b;
            a = this.elements;
            b = a[1];
            a[1] = a[4];
            a[4] = b;
            b = a[2];
            a[2] = a[8];
            a[8] = b;
            b = a[3];
            a[3] = a[12];
            a[12] = b;
            b = a[6];
            a[6] = a[9];
            a[9] = b;
            b = a[7];
            a[7] = a[13];
            a[13] = b;
            b = a[11];
            a[11] = a[14];
            a[14] = b;
            return this
        };
        b.prototype.ywa = function (a) {
            var b, e, f;
            b = a.elements;
            a = this.elements;
            e = [];
            e[0] = b[5] * (b[10] * b[15] - b[11] * b[14]) - b[9] * (b[6] * b[15] + b[7] * b[14]) + b[13] * (b[6] * b[11] - b[7] * b[10]);
            e[4] = -b[4] *
                (b[10] * b[15] - b[11] * b[14]) + b[8] * (b[6] * b[15] - b[7] * b[14]) - b[12] * (b[6] * b[11] - b[7] * b[10]);
            e[8] = b[4] * (b[9] * b[15] - b[11] * b[13]) - b[8] * (b[5] * b[15] - b[7] * b[13]) + b[12] * (b[5] * b[11] - b[7] * b[9]);
            e[12] = -b[4] * (b[9] * b[14] - b[10] * b[13]) + b[8] * (b[5] * b[14] - b[6] * b[13]) - b[12] * (b[5] * b[10] - b[6] * b[9]);
            e[1] = -b[1] * (b[10] * b[15] - b[11] * b[14]) + b[9] * (b[2] * b[15] - b[3] * b[14]) - b[13] * (b[2] * b[11] - b[3] * b[10]);
            e[5] = b[0] * (b[10] * b[15] - b[11] * b[14]) - b[8] * (b[2] * b[15] - b[3] * b[14]) + b[12] * (b[2] * b[11] - b[3] * b[10]);
            e[9] = -b[0] * (b[9] * b[15] - b[11] * b[13]) + b[8] *
                (b[1] * b[15] - b[3] * b[13]) - b[12] * (b[1] * b[11] - b[3] * b[9]);
            e[13] = b[0] * (b[9] * b[14] - b[10] * b[13]) - b[8] * (b[1] * b[14] - b[2] * b[13]) + b[12] * (b[1] * b[10] - b[2] * b[9]);
            e[2] = b[1] * (b[6] * b[15] - b[7] * b[14]) - b[5] * (b[2] * b[15] - b[3] * b[14]) + b[13] * (b[2] * b[7] - b[3] * b[6]);
            e[6] = -b[0] * (b[6] * b[15] - b[7] * b[14]) + b[4] * (b[2] * b[15] - b[3] * b[14]) - b[12] * (b[2] * b[7] - b[3] * b[6]);
            e[10] = b[0] * (b[5] * b[15] - b[7] * b[13]) - b[4] * (b[1] * b[15] - b[3] * b[13]) + b[12] * (b[1] * b[7] - b[3] * b[5]);
            e[14] = -b[0] * (b[5] * b[14] - b[6] * b[13]) + b[4] * (b[1] * b[14] - b[2] * b[13]) - b[12] * (b[1] * b[6] -
                b[2] * b[5]);
            e[3] = -b[1] * (b[6] * b[11] - b[7] * b[10]) + b[5] * (b[2] * b[11] - b[3] * b[10]) - b[9] * (b[2] * b[7] - b[3] * b[6]);
            e[7] = b[0] * (b[6] * b[11] - b[7] * b[10]) - b[4] * (b[2] * b[11] + b[3] * b[10]) + b[8] * (b[2] * b[7] - b[3] * b[6]);
            e[11] = -b[0] * (b[5] * b[11] + b[7] * b[9]) + b[4] * (b[1] * b[11] - b[3] * b[9]) - b[8] * (b[1] * b[7] + b[3] * b[5]);
            e[15] = b[0] * (b[5] * b[10] - b[6] * b[9]) - b[4] * (b[1] * b[10] + b[2] * b[9]) + b[8] * (b[1] * b[6] - b[2] * b[5]);
            f = b[0] * e[0] + b[1] * e[4] + b[2] * e[8] + b[3] * e[12];
            if (0 === f) return this;
            f = 1 / f;
            for (b = 0; 16 > b; b++) a[b] = e[b] * f;
            return this
        };
        b.prototype.Og = function () {
            return (new b).ywa(this)
        };
        b.prototype.dU = function (a, b, e, f, h, k) {
            var l, m, n, p;
            if (a === b || e === f || h === k) throw"null frustum";
            m = 1 / (b - a);
            n = 1 / (f - e);
            p = 1 / (k - h);
            l = this.elements;
            l[0] = 2 * m;
            l[1] = 0;
            l[2] = 0;
            l[3] = 0;
            l[4] = 0;
            l[5] = 2 * n;
            l[6] = 0;
            l[7] = 0;
            l[8] = 0;
            l[9] = 0;
            l[10] = -2 * p;
            l[11] = 0;
            l[12] = -(b + a) * m;
            l[13] = -(f + e) * n;
            l[14] = -(k + h) * p;
            l[15] = 1;
            return this
        };
        b.prototype.Yta = function (a, d, e, f, h, k) {
            return this.concat((new b).dU(a, d, e, f, h, k))
        };
        b.prototype.wwa = function (a, b, e, f, h, k) {
            var l, m, n, p;
            if (a === b || f === e || h === k) throw"null frustum";
            if (0 >= h) throw"near <= 0";
            if (0 >=
                k) throw"far <= 0";
            m = 1 / (b - a);
            n = 1 / (f - e);
            p = 1 / (k - h);
            l = this.elements;
            l[0] = 2 * h * m;
            l[1] = 0;
            l[2] = 0;
            l[3] = 0;
            l[4] = 0;
            l[5] = 2 * h * n;
            l[6] = 0;
            l[7] = 0;
            l[8] = (b + a) * m;
            l[9] = (f + e) * n;
            l[10] = -(k + h) * p;
            l[11] = -1;
            l[12] = 0;
            l[13] = 0;
            l[14] = -2 * h * k * p;
            l[15] = 0;
            return this
        };
        b.prototype.QQ = function (a, d, e, f, h, k) {
            return this.concat((new b).wwa(a, d, e, f, h, k))
        };
        b.prototype.c8 = function (a, b, e, f) {
            var h, k;
            if (e === f || 0 === b) throw"null frustum";
            if (0 >= e) throw"near <= 0";
            if (0 >= f) throw"far <= 0";
            a /= 2;
            k = Math.sin(a);
            if (0 === k) throw"null frustum";
            h = 1 / (f - e);
            k = Math.cos(a) /
                k;
            a = this.elements;
            a[0] = k / b;
            a[1] = 0;
            a[2] = 0;
            a[3] = 0;
            a[4] = 0;
            a[5] = k;
            a[6] = 0;
            a[7] = 0;
            a[8] = 0;
            a[9] = 0;
            a[10] = -(f + e) * h;
            a[11] = -1;
            a[12] = 0;
            a[13] = 0;
            a[14] = -2 * e * f * h;
            a[15] = 0;
            return this
        };
        b.prototype.perspective = function (a, d, e, f) {
            return this.concat((new b).c8(a, d, e, f))
        };
        b.prototype.Jv = function (a, b, e) {
            var f = this.elements;
            f[0] = a;
            f[4] = 0;
            f[8] = 0;
            f[12] = 0;
            f[1] = 0;
            f[5] = b;
            f[9] = 0;
            f[13] = 0;
            f[2] = 0;
            f[6] = 0;
            f[10] = e;
            f[14] = 0;
            f[3] = 0;
            f[7] = 0;
            f[11] = 0;
            f[15] = 1;
            return this
        };
        b.prototype.scale = function (a, b, e) {
            var f = this.elements;
            f[0] *= a;
            f[4] *= b;
            f[8] *= e;
            f[1] *= a;
            f[5] *= b;
            f[9] *= e;
            f[2] *= a;
            f[6] *= b;
            f[10] *= e;
            f[3] *= a;
            f[7] *= b;
            f[11] *= e;
            return this
        };
        b.prototype.f8 = function (a, b, e) {
            var f = this.elements;
            f[12] = a;
            f[13] = b;
            f[14] = e;
            return this
        };
        b.prototype.translate = function (a, b, e) {
            var f = this.elements;
            f[12] += f[0] * a + f[4] * b + f[8] * e;
            f[13] += f[1] * a + f[5] * b + f[9] * e;
            f[14] += f[2] * a + f[6] * b + f[10] * e;
            f[15] += f[3] * a + f[7] * b + f[11] * e;
            return this
        };
        b.prototype.qz = function (a, b, e, f) {
            var h, k, l, m, n, p, q, r;
            a = Math.PI * a / 180;
            h = this.elements;
            k = Math.sin(a);
            a = Math.cos(a);
            0 !== b && 0 === e && 0 === f ?
                (0 > b && (k = -k), h[0] = 1, h[4] = 0, h[8] = 0, h[12] = 0, h[1] = 0, h[5] = a, h[9] = -k, h[13] = 0, h[2] = 0, h[6] = k, h[10] = a, h[14] = 0, h[3] = 0, h[7] = 0, h[11] = 0) : 0 === b && 0 !== e && 0 === f ? (0 > e && (k = -k), h[0] = a, h[4] = 0, h[8] = k, h[12] = 0, h[1] = 0, h[5] = 1, h[9] = 0, h[13] = 0, h[2] = -k, h[6] = 0, h[10] = a, h[14] = 0, h[3] = 0, h[7] = 0, h[11] = 0) : 0 === b && 0 === e && 0 !== f ? (0 > f && (k = -k), h[0] = a, h[4] = -k, h[8] = 0, h[12] = 0, h[1] = k, h[5] = a, h[9] = 0, h[13] = 0, h[2] = 0, h[6] = 0, h[10] = 1, h[14] = 0, h[3] = 0, h[7] = 0, h[11] = 0) : (l = Math.sqrt(b * b + e * e + f * f), 1 !== l && (l = 1 / l, b *= l, e *= l, f *= l), l = 1 - a, m = b * e, n = e * f, p = f * b, q = b * k,
                    r = e * k, k *= f, h[0] = b * b * l + a, h[1] = m * l + k, h[2] = p * l - r, h[3] = 0, h[4] = m * l - k, h[5] = e * e * l + a, h[6] = n * l + q, h[7] = 0, h[8] = p * l + r, h[9] = n * l - q, h[10] = f * f * l + a, h[11] = 0, h[12] = 0, h[13] = 0, h[14] = 0);
            h[15] = 1;
            return this
        };
        b.prototype.rotate = function (a, d, e, f) {
            return this.concat((new b).qz(a, d, e, f))
        };
        b.prototype.Ps = function (a) {
            return this.rotate(a, 1, 0, 0)
        };
        b.prototype.Qs = function (a) {
            return this.rotate(a, 0, 1, 0)
        };
        b.prototype.Rs = function (a) {
            return this.rotate(a, 0, 0, 1)
        };
        a.Hc = b
    })(g);
    z.w.nt = z.w.zc.extend({
        B: {
            visible: !0,
            zIndex: 10,
            strokeColor: "#006600",
            strokeOpacity: 0.9,
            strokeWeight: 3,
            strokeStyle: "solid",
            strokeDasharray: [10, 5],
            radius: [1E3, 1E3],
            fillColor: "#006600",
            fillOpacity: 0.9
        }, r: function () {
            var a = this, b = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            this.CLASS_NAME = "AMap.Ellipse";
            g.c.xa(this, b);
            var b = g.extend({}, this.B, b), c = this.Cr(b);
            b.path = c;
            z.w.nt.Uc.r.call(this, b);
            this.set("path", c);
            this.get("center") && this.get("map") || (this.Qg = !1);
            this.on("movepoly", function (b) {
                var c =
                    a.get("map");
                b = c.Ld(c.Ab(a.get("center")).add(b.VJ));
                "3D" === c.view.type && a.set("deltaPos", [0, 0], !0);
                a.set("center", b)
            })
        }, Cr: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}, b = [],
                c = a.center || this.get("center"), d = a.map || this.get("map");
            if (c && d) for (var c = g.a.Ia(c), e = a.radius || this.get("radius"), f = d.Ab(c), a = f.x, f = f.y, h = g.a.map(e, function (a) {
                return a / d.getResolution(c, 20)
            }), e = h[0], h = h[1], k = g.l.ba, l = (k ? 4 : 1) * Math.PI / 180, m = 0, k = k ? 89 : 359; m <= k; m++) {
                var n = m * l, n = {
                    x: a + e * Math.cos(n), y: f +
                        h * Math.sin(n)
                };
                b.push(d.Ld(n))
            }
            return b
        }, mapChanged: function () {
            g.a.Mh(z.w.nt.Uc.mapChanged) && z.w.nt.Uc.mapChanged.apply(this);
            this.D = !0;
            this.setPath(this.Cr());
            this.D = !1;
            !this.Qg && this.get("map") && (this.Qg = !0, this.get("map").q("overlays"))
        }, setCenter: function (a, b) {
            g.c.add(this, "setCenter");
            (a = g.a.Ia(a)) && a instanceof g.U && (this.w && this.w.get("deltaPos") && this.w.set("deltaPos", [0, 0], !0), this.set("center", a), this.set("path", this.Cr()), this.Qg || (this.Qg = !0, this.get("map") && this.get("map").q("overlays")),
            b || (this.q("setCenter"), this.q("change", {type: "change", target: this})))
        }, setRadius: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1;
            g.c.add(this, "setRadius");
            a && 2 === a.length && (this.set("radius", a), this.set("path", this.Cr()), b || (this.q("change", {
                type: "change",
                target: this
            }), this.q("setPath")))
        }, setOptions: function (a) {
            z.w.nt.Uc.setOptions.call(this, a);
            this.D = !0;
            a.radius && this.setRadius(a.radius, !0);
            a.center && this.setCenter(a.center, !0);
            this.D = !1
        }, getRadius: function () {
            g.c.add(this,
                "getRadius");
            return this.get("radius", null, !0)
        }, getCenter: function () {
            g.c.add(this, "getCenter");
            var a = this.get("center", null, !0);
            this.w && this.w.get("deltaPos") && this.w.PA([a], this.w.get("deltaPos"))[0];
            return a
        }
    });
    z.w.tt = z.w.zc.extend({
        B: {
            visible: !0,
            zIndex: 10,
            strokeColor: "#006600",
            strokeOpacity: 0.9,
            strokeWeight: 3,
            strokeStyle: "solid",
            strokeDasharray: [10, 5],
            fillColor: "#006600",
            fillOpacity: 0.9
        }, r: function () {
            var a = this, b = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            this.CLASS_NAME = "AMap.Rectangle";
            g.c.xa(this, b);
            b = g.extend({}, this.B, b);
            this.D = !0;
            var c = this.Cr(b);
            b.path = c;
            z.w.tt.Uc.r.call(this, b);
            this.setPath(c);
            this.B.bounds && this.get("map") || (this.Qg = !1);
            this.on("movepoly", function (b) {
                var c = a.get("map"),
                    f = a.get("bounds"), h = c.Ld(c.Ab(f.sc).add(b.VJ));
                b = c.Ld(c.Ab(f.kc).add(b.VJ));
                "3D" === c.view.type && a.set("deltaPos", [0, 0]);
                a.set("bounds", new g.re(h, b))
            });
            this.D = !1
        }, Cr: function () {
            var a = [],
                b = (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}).bounds || this.get("bounds");
            if (b) {
                b.D = !0;
                var c = b.getSouthWest(), d = b.getNorthEast();
                b.D = !1;
                g.a.Nb([new g.U(c.Q, c.P, !0), new g.U(d.Q, c.P, !0), new g.U(d.Q, d.P, !0), new g.U(c.Q, d.P, !0)], function (b) {
                    return a.push(b)
                })
            }
            return a
        }, mapChanged: function () {
            g.a.Mh(z.w.tt.Uc.mapChanged) &&
            z.w.tt.Uc.mapChanged.apply(this);
            this.D = !0;
            this.setPath(this.Cr());
            this.D = !1;
            !this.Qg && this.get("map") && (this.Qg = !0, this.get("map").q("overlays"))
        }, setOptions: function (a) {
            this.D = !0;
            z.w.tt.Uc.setOptions.call(this, a);
            a.bounds && this.setBounds(a.bounds, !0);
            this.D = !1
        }, setBounds: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1;
            g.c.add(this, "setBounds");
            a && a instanceof g.re && (this.set("bounds", a), this.set("path", this.Cr()), this.Qg || (this.Qg = !0, this.get("map") && this.get("map").q("overlays")),
            b || (this.q("change", {type: "change", target: this}), this.q("setBounds")))
        }, getBounds: function () {
            g.c.add(this, "getBounds");
            return this.get("bounds", null, !0)
        }
    });
    z.w.kW = z.w.rb.extend({
        B: {text: "", textAlign: "center", verticalAlign: "middle", offset: new g.G(0, 0)}, r: function (a) {
            this.CLASS_NAME = "AMap.Text";
            g.c.xa(this, a);
            z.w.kW.Uc.r.apply(this, arguments);
            this.pfa();
            this.D = !0;
            this.setText(this.get("text"));
            this.setStyle(this.get("style"));
            this.D = !1
        }, pfa: function () {
            if (!this.NB) {
                var a = document.createElement("div");
                a.className = "amap-overlay-text-container";
                this.NB = a
            }
        }, getText: function () {
            g.c.add(this, "getText");
            return this.get("text", null, !0)
        }, setText: function (a) {
            g.c.add(this,
                "setText");
            a || 0 === a || (a = "");
            g.j.Dxa(this.NB, "amap-overlay-text-empty", !a);
            g.c.add(this, "setText");
            this.set("text", a);
            this.NB.innerHTML = a;
            this.n7()
        }, setStyle: function (a) {
            g.c.add(this, "setStyle");
            a = a || {};
            for (var b in a) a.hasOwnProperty(b) && (this.NB.style[b] = a[b]);
            this.n7()
        }, n7: function () {
            this.D = !0;
            this.setContent(this.NB);
            this.setShadow(this.getShadow());
            this.D = !1
        }
    });
    g.IV = {
        find: function (a) {
            return g.a.find(this.Lw || [], a)
        }, BI: function () {
            return this.Lw || []
        }, Hd: function (a) {
            return null !== this.find(a)
        }, add: function (a) {
            var b = this, c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : g.a.Bs,
                d = this.Lw || (this.Lw = []);
            g.a.isArray(a) ? g.a.Nb(a, function (a) {
                b.add(a, c)
            }) : null === this.find(a) && (d.push(a), c(a));
            return this
        }, remove: function (a) {
            var b = this, c = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : g.a.Bs, d = this.Lw;
            if (d) if (g.a.isArray(a)) g.a.Nb(a, function (a) {
                b.remove(a,
                    c)
            }); else {
                var e = g.a.indexOf(d, a);
                -1 !== e && (c(d[e]), d.splice(e, 1))
            }
            return this
        }, clear: function () {
            this.Nb(0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : g.a.Bs);
            this.Lw = [];
            return this
        }, Nb: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : g.a.Bs,
                b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;
            g.a.Nb(this.Lw || [], function () {
                for (var c = arguments.length, d = Array(c), e = 0; e < c; e++) d[e] = arguments[e];
                c = d[0];
                g.a.Mh(c.Nb) ? c.Nb(a, b) : a.apply(b || c, d)
            });
            return this
        }, Go: function (a) {
            for (var b =
                arguments.length, c = Array(1 < b ? b - 1 : 0), d = 1; d < b; d++) c[d - 1] = arguments[d];
            this.Nb(function (b) {
                b && g.a.Mh(b[a]) && b[a].apply(b, c)
            });
            return this
        }, h: function (a) {
            var b = arguments;
            this.Nb(function (a) {
                a.on.apply(a, b)
            });
            return this
        }, H: function (a) {
            var b = arguments;
            this.Nb(function (a) {
                a.off.apply(a, b)
            });
            return this
        }, addListener: function () {
            this.h.apply(this, arguments)
        }, Hx: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : g.a.Bs,
                c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
            this.Nb(function (d) {
                d.on.call(d,
                    event, function () {
                        b();
                        d.off(a)
                    }, c)
            })
        }, removeListener: function (a) {
            this.H(a.xQ, a.GR, a.Te)
        }, O: function (a, b) {
            this.Nb(function (c) {
                c.emit(a, b)
            })
        }
    };
    z.w.Kn = z.w.zh.extend({
        ka: [g.IV], r: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [];
            this.CLASS_NAME = "AMap.OverlayGroup";
            g.c.xa(this);
            z.w.Kn.Uc.r.apply(this);
            this.map = null;
            this.add(a)
        }, rc: function (a) {
            g.c.add(this, "setMap");
            this.Go("setMap", a);
            this.Go("setMap", a);
            this.set("map", a);
            this.map = a;
            return this
        }, mapChanged: function () {
        }, WB: function (a) {
            var b = this;
            g.c.add(this, "addOverlay");
            this.add(a, function (a) {
                b.map && (a.D = !0, a.setMap(b.map), a.D = !1)
            });
            return this
        }, iz: function (a) {
            var b =
                this;
            g.c.add(this, "removeOverlay");
            this.remove(a, function (a) {
                a.D = !0;
                a.getMap() === b.map && a.setMap(null);
                a.D = !1
            });
            return this
        }, dd: function () {
            var a = this;
            g.c.add(this, "clearOverlays");
            this.clear(function (b) {
                b.D = !0;
                b.getMap() === a.map && b.setMap(null);
                b.D = !1
            });
            return this
        }, By: function () {
            g.c.add(this, "hide");
            this.Go("hide");
            return this
        }, show: function () {
            g.c.add(this, "show");
            this.Go("show");
            return this
        }, Db: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
            g.c.add(this, "setOptions");
            this.Go("setOptions", a);
            return this
        }
    });
    z.w.Kn.Ob({
        find: "getOverlay",
        BI: "getOverlays",
        WB: ["addOverlay", "addOverlays"],
        Hd: "hasOverlay",
        iz: ["removeOverlay", "removeOverlays"],
        dd: "clearOverlays",
        Nb: "eachOverlay",
        rc: "setMap",
        Db: "setOptions",
        show: "show",
        By: "hide",
        h: "on",
        H: "off"
    });
    (function (a, b) {
        function c(a, b) {
            if (!a.length) return !1;
            for (var c = 0, d = a.length; c < d; c++) {
                var e = a[c];
                if (!("*" === b || e && e.geometry && e.geometry.type === b) || e && e.properties && !e.properties._isAmap) return !1
            }
            return !0
        }

        function d(a) {
            for (var b = [], c = 0, d = a.length; c < d; c++) b.push(a[c].geometry.coordinates);
            return b
        }

        function e(a) {
            if (!a || !a.length) return [];
            a = b.a.Ia(a);
            for (var c = [], d = 0, e = a.length; d < e; d++) c[d] = a[d].pl();
            a[a.length - 1].cb(a[0]) || c.push(a[0].pl());
            return c
        }

        a.w.GV = a.w.Kn.extend({
            r: function (c) {
                this.CLASS_NAME =
                    "AMap.GeoJSON";
                b.c.xa(this, c);
                a.w.GV.Uc.r.call(this, []);
                this.D = !0;
                this.B = b.extend({
                    getMarker: function (b, c) {
                        return new a.w.rb({innerOverlay: !0, position: c})
                    }, getPolyline: function (b, c) {
                        return new a.w.Xb({path: c, innerOverlay: !0})
                    }, getPolygon: function (b, c) {
                        return new a.w.zc({path: c, innerOverlay: !0})
                    }, coordsToLatLng: function (a) {
                        return a
                    }
                }, c);
                if (!this.B.coordsToLatLngs) {
                    var d = this.B.coordsToLatLng;
                    this.B.coordsToLatLngs = function (a) {
                        for (var b = [], c = 0, e = a.length; c < e; c++) b.push(d.call(null, a[c]));
                        return b
                    }
                }
                this.importData(this.B.geoJSON);
                this.D = !1
            }, importData: function (a) {
                b.c.add(this, "importData");
                if (a && (a = this.kfa(a), a.length)) {
                    this.clearOverlays();
                    this.WB(a);
                    var c = this.B.map;
                    if (c) for (var d = 0, e = a.length; d < e; d++) a[d].D = !0, a[d].setMap(c), a[d].D = !1
                }
            }, toGeoJSON: function () {
                b.c.add(this, "toGeoJSON");
                for (var a = this.BI(), c = [], d = 0, e = a.length; d < e; d++) a[d].D = !0, c[d] = a[d].toGeoJSON(), a[d].D = !1;
                return c
            }, kfa: function (a) {
                if (a) {
                    b.a.isArray(a) || (a = [a]);
                    for (var c = [], d = 0, e = a.length; d < e; d++) {
                        var m = this.lfa(a[d]);
                        m && c.push(m)
                    }
                    return c
                }
            }, cX: function (a) {
                var b =
                        "Feature" === a.type ? a.geometry : a, b = this.B.coordsToLatLng(b ? b.coordinates : null),
                    b = this.B.getMarker(a, b);
                this.sr(a, b);
                return b
            }, aca: function (c) {
                for (var d = "Feature" === c.type ? c.geometry : c, d = d ? d.coordinates : null, e = [], l = 0, m = d.length; l < m; l++) e.push(this.cX(b.extend({}, c, {
                    type: "Feature",
                    properties: {_isAmap: !0, _pointIndex: l, _parentProperities: c.properties},
                    geometry: {type: "Point", coordinates: d[l]}
                })));
                d = new a.w.Kn(e);
                this.sr(c, d);
                return d
            }, bX: function (a) {
                var b = "Feature" === a.type ? a.geometry : a, b = this.B.coordsToLatLngs(b ?
                    b.coordinates : null), b = this.B.getPolyline(a, b);
                this.sr(a, b);
                return b
            }, $ba: function (c) {
                for (var d = "Feature" === c.type ? c.geometry : c, d = d ? d.coordinates : null, e = [], l = 0, m = d.length; l < m; l++) e.push(this.bX(b.extend({}, c, {
                    type: "Feature",
                    properties: {_isAmap: !0, _lineStringIndex: l, _parentProperities: c.properties},
                    geometry: {type: "LineString", coordinates: d[l]}
                })));
                d = new a.w.Kn(e);
                this.sr(c, d);
                return d
            }, dX: function (a) {
                for (var b = "Feature" === a.type ? a.geometry : a, b = b ? b.coordinates : null, c = [], d = 0, e = b.length; d < e; d++) c.push(this.B.coordsToLatLngs(b[d]));
                b = this.B.getPolygon(a, c);
                this.sr(a, b);
                return b
            }, bca: function (c) {
                for (var d = "Feature" === c.type ? c.geometry : c, d = d ? d.coordinates : null, e = [], l = 0, m = d.length; l < m; l++) e.push(this.dX(b.extend({}, c, {
                    type: "Feature",
                    properties: {_isAmap: !0, _polygonIndex: l, _parentProperities: c.properties},
                    geometry: {type: "Polygon", coordinates: d[l]}
                })));
                d = new a.w.Kn(e);
                this.sr(c, d);
                return d
            }, Uba: function (c) {
                for (var d = ("Feature" === c.type ? c.geometry : c).geometries, e = [], l = 0, m = d.length; l < m; l++) e.push(this.oN(b.extend({}, c, {
                    type: "Feature",
                    properties: {_isAmap: !0, _geometryIndex: l, _parentProperities: c.properties}, geometry: d[l]
                })));
                d = new a.w.Kn(e);
                this.sr(c, d);
                return d
            }, lfa: function (b) {
                if (b) switch (b.type) {
                    case "Feature":
                        return this.oN(b);
                    case "FeatureCollection":
                        for (var c = b.features, d = [], e = 0, m = c.length; e < m; e++) {
                            var n = this.oN(c[e]);
                            n && d.push(n)
                        }
                        c = new a.w.Kn(d);
                        this.sr(b, c);
                        return c;
                    default:
                        throw Error("Invalid GeoJSON object." + b.type);
                }
            }, sr: function (a, c) {
                c && a.properties && c.setExtData && (c.D = !0, c.setExtData(b.extend({}, c.getExtData() || {},
                    {_geoJsonProperties: a.properties})), c.D = !1)
            }, oN: function (a) {
                var b = "Feature" === a.type ? a.geometry : a;
                if (!(b && b.coordinates || b)) return null;
                switch (b.type) {
                    case "Point":
                        return this.cX(a);
                    case "MultiPoint":
                        return this.aca(a);
                    case "LineString":
                        return this.bX(a);
                    case "MultiLineString":
                        return this.$ba(a);
                    case "Polygon":
                        return this.dX(a);
                    case "MultiPolygon":
                        return this.bca(a);
                    case "GeometryCollection":
                        return this.Uba(a);
                    default:
                        throw Error("Invalid GeoJSON geometry." + b.type);
                }
            }
        });
        a.w.Kn.zb({
            toGeoJSON: function (a) {
                b.c.add(this,
                    "toGeoJSON");
                a = a || this.BI();
                for (var e = [], k = 0, l = a.length; k < l; k++) a[k].toGeoJSON && (a[k].D = !0, e[k] = a[k].toGeoJSON(), a[k].D = !1);
                this.D = !0;
                a = this.getExtData() || {};
                this.D = !1;
                if (c(e, "Point")) e = {
                    type: "Feature",
                    properties: a._geoJsonProperties || {},
                    geometry: {type: "MultiPoint", coordinates: d(e)}
                }; else if (c(e, "LineString")) e = {
                    type: "Feature",
                    properties: a._geoJsonProperties || {},
                    geometry: {type: "MultiLineString", coordinates: d(e)}
                }; else if (c(e, "Polygon")) e = {
                    type: "Feature", properties: a._geoJsonProperties || {}, geometry: {
                        type: "MultiPolygon",
                        coordinates: d(e)
                    }
                }; else if (c(e, "*")) {
                    a = a._geoJsonProperties || {};
                    for (var k = [], l = 0, m = e.length; l < m; l++) k.push(e[l].geometry);
                    e = {type: "Feature", properties: a, geometry: {type: "GeometryCollection", geometries: k}}
                } else e = {type: "FeatureCollection", properties: a._geoJsonProperties || {}, features: e};
                return e
            }
        });
        a.w.rb.zb({
            toGeoJSON: function () {
                b.c.add(this, "toGeoJSON");
                this.D = !0;
                var a = this.getExtData() || {}, c = this.getPosition().pl();
                this.D = !1;
                return {
                    type: "Feature", properties: a._geoJsonProperties || {}, geometry: {
                        type: "Point",
                        coordinates: c
                    }
                }
            }
        });
        a.w.Xb.zb({
            toGeoJSON: function () {
                b.c.add(this, "toGeoJSON");
                this.D = !0;
                var a = this.getExtData() || {}, c = this.getPath();
                this.D = !1;
                return {
                    type: "Feature",
                    properties: a._geoJsonProperties || {},
                    geometry: {type: "LineString", coordinates: e(c)}
                }
            }
        });
        a.w.zc.zb({
            toGeoJSON: function () {
                b.c.add(this, "toGeoJSON");
                this.D = !0;
                var a = this.getExtData() || {}, c = this.getPath();
                this.D = !1;
                a = a._geoJsonProperties || {};
                if (c) {
                    c = b.a.Ia(c);
                    b.a.isArray(c[0]) || (c = [c]);
                    for (var d = [], l = 0, m = c.length; l < m; l++) d[l] = e(c[l]);
                    c = d
                } else c =
                    [];
                return {type: "Feature", properties: a, geometry: {type: "Polygon", coordinates: c}}
            }
        })
    })(z, g);
    z.o.uL = z.o.Tb.extend({
        ka: [g.IV], r: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};
            this.CLASS_NAME = "AMap.LayerGroup";
            g.c.xa(this, b);
            z.o.uL.Uc.r.call(this, b);
            this.map = null;
            this.add(a)
        }, rc: function (a) {
            g.c.add(this, "setMap");
            this.Go("setMap", a);
            this.set("map", a);
            this.map = a;
            return this
        }, mapChanged: function () {
        }, vH: function (a) {
            var b = this;
            g.c.add(this, "addLayer");
            this.add(a, function (a) {
                b.map && (a.D = !0, a.setMap(b.map), a.D = !1)
            });
            return this
        }, lk: function (a) {
            var b = this;
            g.c.add(this,
                "removeLayer");
            this.remove(a, function (a) {
                a.D = !0;
                a.getMap() === b.map && a.setMap(null);
                a.D = !1
            });
            return this
        }, Fma: function () {
            var a = this;
            g.c.add(this, "clearLayers");
            this.clear(function (b) {
                b.D = !0;
                b.getMap() === a.map && b.setMap(null);
                b.D = !1
            });
            return this
        }, By: function () {
            g.c.add(this, "hide");
            this.Go("hide");
            return this
        }, show: function () {
            g.c.add(this, "show");
            this.Go("show");
            return this
        }, reload: function () {
            this.Go("reload");
            return this
        }, Db: function () {
            var a = this, b = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] :
                {};
            g.c.add(this, "setOptions");
            var c = g.a.keys(b);
            g.a.Nb(c, function (c) {
                a.Go("set", c, b[c])
            });
            return this
        }
    });
    z.o.uL.Ob({
        find: "getLayer",
        BI: "getLayers",
        vH: ["addLayer", "addLayers"],
        Hd: "hasLayer",
        lk: ["removeLayer", "removeLayers"],
        Fma: "clearLayers",
        Nb: "eachLayer",
        rc: "setMap",
        Db: "setOptions",
        show: "show",
        By: "hide",
        reload: "reload",
        h: "on",
        H: "off"
    });
    g.eaa = z.Kb.extend({
        r: function (a, b) {
            b && (b.center = b.position, b.zoom = 11);
            arguments.callee.la.apply(this, arguments);
            window.console && window.console.log && window.console.log("\u9ad8\u5fb7\u5730\u56feJSAPI\u8857\u666f\u5df2\u4e0b\u7ebf\uff0c\u611f\u8c22\u60a8\u7684\u652f\u6301\u3002")
        }
    });
    g.faa = z.w.rb.extend({
        r: function (a) {
            arguments.callee.la.apply(this, arguments)
        }
    });
    g.wd = {
        Sr: function (a, b) {
            for (var c = Infinity, d = 0, e = 1, f = b.length; e < f; d = e, e += 1) c = Math.min(c, g.wd.Uwa(a, [b[d], b[e]]));
            return Math.sqrt(c)
        }, Uwa: function (a, b) {
            return this.GK(a, this.d2(a, b))
        }, GK: function (a, b) {
            var c = a[0] - b[0], d = a[1] - b[1];
            return c * c + d * d
        }, BFa: function (a, b, c, d) {
            d = d || 1E-6;
            if (c[0] === b[0]) {
                var e = Math.min(b[1], c[1]);
                b = Math.max(b[1], c[1]);
                return Math.abs(a[0] - c[0]) < d && a[1] >= e && a[1] <= b
            }
            var e = Math.min(b[0], c[0]), f = Math.max(b[0], c[0]);
            return Math.abs((c[1] - b[1]) / (c[0] - b[0]) * (a[0] - b[0]) + b[1] - a[1]) < d &&
                a[0] >= e && a[0] <= f
        }, d2: function (a, b) {
            var c = a[0], d = a[1], e = b[0], f = b[1], h = e[0], e = e[1], k = f[0], f = f[1], l = k - h, m = f - e,
                c = 0 === l && 0 === m ? 0 : (l * (c - h) + m * (d - e)) / (l * l + m * m || 0);
            0 >= c || (1 <= c ? (h = k, e = f) : (h += c * l, e += c * m));
            return [h, e]
        }, $p: function (a) {
            for (var b = a.length, c = 0, d = a[b - 1], e = d[0], d = d[1], f, h, k = 0; k < b; k += 1) h = a[k], f = h[0], h = h[1], c += (f - e) * (h + d), e = f, d = h;
            return 0 < c
        }, Rd: function (a, b, c) {
            var d = a[0];
            a = a[1];
            var e = !1, f, h, k, l, m = b.length, n = 0;
            for (l = m - 1; n < m; l = n, n += 1) {
                var p = !1;
                f = b[n][0];
                h = b[n][1];
                k = b[l][0];
                l = b[l][1];
                if (f === d && h === a || k ===
                    d && l === a) return c ? !0 : !1;
                if (h < a === l >= a) {
                    f = (k - f) * (a - h) / (l - h) + f;
                    if (d === f) return c ? !0 : !1;
                    p = d < f
                }
                p && (e = !e)
            }
            return e
        }, W6: function (a, b) {
            function c(a, b, c, d) {
                var e = [a[0] - b[0], a[1] - b[1]], f = [c[0] - d[0], c[1] - d[1]];
                a = a[0] * b[1] - a[1] * b[0];
                c = c[0] * d[1] - c[1] * d[0];
                d = 1 / (e[0] * f[1] - e[1] * f[0]);
                return [(a * f[0] - c * e[0]) * d, (a * f[1] - c * e[1]) * d]
            }

            function d(a, b, c) {
                return (c[0] - b[0]) * (a[1] - b[1]) > (c[1] - b[1]) * (a[0] - b[0])
            }

            var e, f, h, k, l = a;
            e = b[b.length - 2];
            for (var m = 0, n = b.length - 1; m < n; m++) {
                f = b[m];
                var p = l, l = [];
                h = p[p.length - 1];
                for (var q = 0, r =
                    p.length; q < r; q++) k = p[q], d(k, e, f) ? (d(h, e, f) || l.push(c(e, f, h, k)), l.push(k)) : d(h, e, f) && l.push(c(e, f, h, k)), h = k;
                e = f
            }
            if (3 > l.length) return [];
            l.push(l[0]);
            return l
        }
    };
    (function (a) {
        function b(b, c) {
            var d;
            a:{
                switch (b) {
                    case "EPSG3395":
                        d = a.Xh.AV;
                        break a;
                    case "EPSG4326":
                        d = a.Xh.BV;
                        break a
                }
                d = a.Xh.mL
            }
            return {
                project: function (b) {
                    a.a.isArray(b) && (b = new a.U(b[0], b[1]));
                    return d.pD(b, c).pl()
                }, unproject: function (b) {
                    a.a.isArray(b) && (b = new a.G(b[0], b[1]));
                    return d.RD(b, c).pl()
                }, normalizePoint: function (b) {
                    return a.a.Ia(b)
                }, distance: function (b, c) {
                    c = this.normalizePoint(c);
                    if (a.a.isArray(c)) return this.distanceToLine(b, c);
                    b = this.normalizePoint(b);
                    var d = a.Fm.xu, e = Math.cos, f = b.P * d, h =
                        c.P * d, k = 2 * a.Fm.rQ, d = c.Q * d - b.Q * d,
                        e = (1 - e(h - f) + (1 - e(d)) * e(f) * e(h)) / 2;
                    return k * Math.asin(Math.sqrt(e))
                }, ringArea: function (b) {
                    b = this.normalizeLine(b);
                    var c = a.Fm.rQ * a.Fm.xu, d = 0, e = b.length;
                    if (3 > e) return 0;
                    for (var f = 0; f < e - 1; f += 1) var h = b[f], k = b[f + 1], u = h.Q * c * Math.cos(h.P * a.Fm.xu), h = h.P * c, v = k.Q * c * Math.cos(k.P * a.Fm.xu), d = d + (u * k.P * c - v * h);
                    f = b[f];
                    b = b[0];
                    e = f.Q * c * Math.cos(f.P * a.Fm.xu);
                    f = f.P * c;
                    k = b.Q * c * Math.cos(b.P * a.Fm.xu);
                    d += e * b.P * c - k * f;
                    return 0.5 * Math.abs(d)
                }, sphericalCalotteArea: function (b) {
                    var c = a.Fm.rQ;
                    b = c - c *
                        Math.cos(b / c);
                    return 2 * Math.PI * c * b
                }
            }
        }

        function c() {
            return {
                normalizePoint: function (a) {
                    return a && a.x && a.y ? [a.x, a.y] : a
                }, distance: function (a, b) {
                    var c = a[0] - b[0], d = a[1] - b[1];
                    return Math.sqrt(c * c + d * d)
                }, project: function (a) {
                    return a
                }, unproject: function (a) {
                    return a
                }, ringArea: function (a) {
                    for (var b = [0, 0], c = [0, 0], d = 0, e = a[0], n = a.length, p = 2; p < n; p++) {
                        var q = a[p - 1], r = a[p];
                        b[0] = e[0] - r[0];
                        b[1] = e[1] - r[1];
                        c[0] = e[0] - q[0];
                        c[1] = e[1] - q[1];
                        d += b[0] * c[1] - b[1] * c[0]
                    }
                    return d / 2
                }
            }
        }

        function d(a) {
            for (var b = 0, c = a.length, d = 0; d < c - 1; d++) var e =
                a[d], n = a[d + 1], b = b + (n[0] - e[0]) * (n[1] + e[1]);
            if (a[c - 1][0] !== a[0][0] || a[c - 1][1] !== a[0][1]) e = a[c - 1], n = a[0], b += (n[0] - e[0]) * (n[1] + e[1]);
            return 0 >= b
        }

        function e(b) {
            this.CLASS_NAME = "AMap.GeometryUtil";
            this.Qb = a.extend({onSegmentTolerance: 5, crs: "EPSG3857", maxZoom: 20}, b);
            this.setCrs(this.Qb.crs)
        }

        a.extend(e.prototype, {
            clone: function (b) {
                return new e(a.extend({}, this.Qb, b))
            }, isPoint: function (b) {
                return b && (b instanceof a.U || a.a.isArray(b) && !isNaN(b[0]))
            }, normalizePoint: function (a) {
                return a
            }, normalizeLine: function (a) {
                for (var b =
                    [], c = 0, d = a.length; c < d; c++) b.push(this.normalizePoint(a[c]));
                return b
            }, normalizeMultiLines: function (b) {
                a.a.isArray(b) && this.isPoint(b[0]) && (b = [b]);
                for (var c = [], d = 0, e = b.length; d < e; d++) c.push(this.normalizeLine(b[d]));
                return c
            }, setCrs: function (d) {
                a.extend(this, d && d.project && d.unproject ? d : "plane" === d ? c() : b(d, this.Qb.maxZoom))
            }, distance: function () {
                throw Error("distance Not implemented!");
            }, ix: function (a, b) {
                a = this.normalizeLine(a);
                this.isPoint(a[0]) || (a = a[0]);
                for (var c = [], d = 0, e = a.length; d < e; d++) c.push(this.project(a[d]));
                !0 === b ? c = this.makesureClockwise(c) : !1 === b && (c = this.makesureClockwise(c), c.reverse());
                return c
            }, kja: function (a) {
                for (var b = [], c = 0, d = a.length; c < d; c++) b.push(this.unproject(a[c]));
                return b
            }, closestOnSegment: function (b, c, d) {
                b = a.wd.d2(this.project(b), this.ix([c, d]));
                return this.unproject(b)
            }, closestOnLine: function (a, b) {
                b = this.normalizeLine(b);
                for (var c = Infinity, d, e = 0, n = b.length; e < n - 1; e++) {
                    var p = this.closestOnSegment(a, b[e], b[e + 1]), q = this.distance(a, p);
                    q < c && (c = q, d = p)
                }
                return d
            }, distanceToSegment: function (a,
                                            b, c) {
                return this.distanceToLine(a, [b, c])
            }, distanceToLine: function (a, b) {
                b = this.normalizeLine(b);
                this.isPoint(b[0]) || (b = b[0]);
                for (var c = Infinity, d = 0, e = b.length; d < e - 1; d++) var n = this.closestOnSegment(a, b[d], b[d + 1]), c = Math.min(c, this.distance(a, n));
                return c
            }, distanceToPolygon: function (a, b) {
                return this.isPointInRing(a, b) ? 0 : this.distanceToLine(a, b)
            }, isPointOnSegment: function (a, b, c, d) {
                if (!d && 0 !== d || 0 > d) d = this.Qb.onSegmentTolerance;
                return this.distanceToSegment(a, b, c) <= d
            }, isPointOnLine: function (a, b, c) {
                b = this.normalizeLine(b);
                for (var d = 0, e = b.length; d < e - 1; d++) if (this.isPointOnSegment(a, b[d], b[d + 1], c)) return !0;
                return !1
            }, isPointOnRing: function (a, b, c) {
                b = this.normalizeLine(b);
                for (var d = 0, e = b.length; d < e; d++) if (this.isPointOnSegment(a, b[d], b[d === e - 1 ? 0 : d + 1], c)) return !0;
                return !1
            }, isPointOnPolygon: function (a, b, c) {
                b = this.normalizeMultiLines(b);
                for (var d = 0, e = b.length; d < e; d++) if (this.isPointOnRing(a, b[d], c)) return !0;
                return !1
            }, makesureClockwise: function (a) {
                d(a) || (a = [].concat(a), a.reverse());
                return a
            }, makesureAntiClockwise: function (a) {
                d(a) &&
                (a = [].concat(a), a.reverse());
                return a
            }, isPointInRing: function (b, c) {
                c = this.normalizeLine(c);
                var d = this.ix(c, !0);
                return a.wd.Rd(this.project(b), d, !1)
            }, isRingInRing: function (a, b) {
                for (var c = 0, d = a.length; c < d; c++) if (!this.isPointInRing(a[c], b)) return !1;
                c = 0;
                for (d = b.length; c < d; c++) if (this.isPointInRing(b[c], a)) return !1;
                return !0
            }, isPointInPolygon: function (a, b) {
                b = this.normalizeMultiLines(b);
                for (var c, d = 0, e = b.length; d < e && (c = this.isPointInRing(a, b[d]), 0 < d && (c = !c), c); d += 1) ;
                return c
            }, doesSegmentsIntersect: function (a,
                                                b, c, d) {
                var e = this.ix([a, b, c, d]);
                a = e[0];
                b = e[1];
                c = e[2];
                d = e[3];
                var e = !1, n = (d[0] - c[0]) * (a[1] - c[1]) - (d[1] - c[1]) * (a[0] - c[0]),
                    p = (b[0] - a[0]) * (a[1] - c[1]) - (b[1] - a[1]) * (a[0] - c[0]);
                a = (d[1] - c[1]) * (b[0] - a[0]) - (d[0] - c[0]) * (b[1] - a[1]);
                0 !== a && (b = n / a, p /= a, 0 <= b && 1 >= b && 0 <= p && 1 >= p && (e = !0));
                return e
            }, doesSegmentLineIntersect: function (a, b, c) {
                c = this.normalizeLine(c);
                for (var d = 0, e = c.length; d < e - 1; d++) if (this.doesSegmentsIntersect(a, b, c[d], c[d + 1])) return !0;
                return !1
            }, doesSegmentRingIntersect: function (a, b, c) {
                c = this.normalizeLine(c);
                for (var d = 0, e = c.length; d < e; d++) if (this.doesSegmentsIntersect(a, b, c[d], c[d === e - 1 ? 0 : d + 1])) return !0;
                return !1
            }, doesSegmentPolygonIntersect: function (a, b, c) {
                c = this.normalizeMultiLines(c);
                for (var d = 0, e = c.length; d < e; d++) if (this.doesSegmentRingIntersect(a, b, c[d])) return !0;
                return !1
            }, doesLineLineIntersect: function (a, b) {
                a = this.normalizeLine(a);
                for (var c = 0, d = a.length; c < d - 1; c++) if (this.doesSegmentLineIntersect(a[c], a[c + 1], b)) return !0;
                return !1
            }, doesLineRingIntersect: function (a, b) {
                a = this.normalizeLine(a);
                for (var c =
                    0, d = a.length; c < d - 1; c++) if (this.doesSegmentRingIntersect(a[c], a[c + 1], b)) return !0;
                return !1
            }, doesPolygonPolygonIntersect: function (a, b) {
                return this.doesRingRingIntersect(b, a) || this.isRingInRing(a, b) || this.isRingInRing(b, a) ? !0 : !1
            }, doesRingRingIntersect: function (a, b) {
                a = this.normalizeLine(a);
                for (var c = 0, d = a.length; c < d; c++) if (this.doesSegmentRingIntersect(a[c], a[c === d - 1 ? 0 : c + 1], b)) return !0;
                return !1
            }, eP: function (a, b) {
                for (var c = 0, d = 0; d < a.length - 1; d += 1) {
                    var e = this.distance(a[d], a[d + 1]);
                    if (e + c < b) c += e; else return c =
                        (b - c) / e, [a[d][0] + c * (a[d + 1][0] - a[d][0]), a[d][1] + c * (a[d + 1][1] - a[d][1]), d]
                }
                return null
            }, sX: function (a, b) {
                function c() {
                    var a = [e[0] - n[0], e[1] - n[1]], b = [p[0] - q[0], p[1] - q[1]], d = e[0] * n[1] - e[1] * n[0],
                        f = p[0] * q[1] - p[1] * q[0], h = 1 / (a[0] * b[1] - a[1] * b[0]);
                    return [(d * b[0] - f * a[0]) * h, (d * b[1] - f * a[1]) * h]
                }

                function d(a) {
                    return (n[0] - e[0]) * (a[1] - e[1]) > (n[1] - e[1]) * (a[0] - e[0])
                }

                a = this.makesureAntiClockwise(a);
                b = this.makesureClockwise(b);
                var e, n, p, q, r = a;
                e = b[b.length - 1];
                for (var s = 0, u = b.length; s < u; s++) {
                    n = b[s];
                    var v = r, r = [];
                    p = v[v.length -
                    1];
                    for (var w = 0, t = v.length; w < t; w++) q = v[w], d(q) ? (d(p) || r.push(c()), r.push(q)) : d(p) && r.push(c()), p = q;
                    e = n
                }
                return r
            }, ringRingClip: function (a, b) {
                a = this.ix(a);
                b = this.ix(b);
                var c = this.sX(a, b);
                0 == c.length && (c = this.sX(b, a));
                return this.kja(c)
            }, ringArea: function () {
                throw Error("distance Not implemented!");
            }, distanceOfLine: function (a) {
                a = this.normalizeLine(a);
                for (var b = 0, c = 0, d = a.length; c < d - 1; c++) b += this.distance(a[c], a[c + 1]);
                return b
            }, isClockwise: function (a) {
                a = this.ix(a);
                return d(a)
            }
        });
        a.Vq = new e;
        a.Gj = new e;
        a.Gj.setCrs("plane")
    })(g);
    g.oL = function () {
        var a = {};
        (function () {
            function b(a) {
                for (var b = 0, e = a.length, f = 0; f < e - 1; f++) var h = a[f], k = a[f + 1], b = b + (k[0] - h[0]) * (k[1] + h[1]);
                if (a[e - 1][0] !== a[0][0] || a[e - 1][1] !== a[0][1]) h = a[e - 1], k = a[0], b += (k[0] - h[0]) * (k[1] + h[1]);
                return 0 >= b
            }

            a.Esa = function (a) {
                b(a) && (a = [].concat(a), a.reverse());
                return a
            };
            a.R4 = b
        })();
        (function () {
            function b(a) {
                var b = a.length;
                2 < b && a[b - 1][0] == a[0][0] && a[b - 1][1] == a[0][1] && a.pop()
            }

            function c(a, b) {
                for (var c = 0; c < b.length; c++) a.push(b[c][0]), a.push(b[c][1])
            }

            a.Th = function (a, e) {
                var f =
                    2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0, h = arguments[3];
                e = e || [];
                var k = [], l = [];
                b(a);
                c(k, a);
                var m = a.length;
                e.forEach(b);
                for (var n = 0; n < e.length; n++) l.push(m), m += e[n].length, c(k, e[n]);
                l = (this.QK ? this.QK : g.Ac.QK)(k, l);
                if (h) {
                    f = [];
                    for (n = 0; n < l.length; n += 1) h = 2 * l[n], f.push([k[h], k[h + 1]]);
                    return f
                }
                if (f) for (n = 0; n < l.length; n += 1) l[n] += f;
                return l
            }
        })();
        return a
    };
    (function (a) {
        a.YE = function () {
            function a(b, c, d, e, f) {
                for (var h, k = 0, l = c, n = d - e; l < d; l += e) k += (b[n] - b[l]) * (b[l + 1] + b[n + 1]), n = l;
                if (f === 0 < k) for (f = c; f < d; f += e) h = r(f, b[f], b[f + 1], h); else for (f = d - e; f >= c; f -= e) h = r(f, b[f], b[f + 1], h);
                h && m(h, h.next) && (s(h), h = h.next);
                return h
            }

            function c(a, b) {
                if (!a) return a;
                b || (b = a);
                var c = a, d;
                do if (d = !1, c.x8 || !m(c, c.next) && 0 !== l(c.Ga, c, c.next)) c = c.next; else {
                    s(c);
                    c = b = c.Ga;
                    if (c === c.next) break;
                    d = !0
                } while (d || c !== b);
                return b
            }

            function d(a, b, e, f, r, u, C) {
                if (a) {
                    if (!C && u) {
                        var F = a, A = F;
                        do null === A.z &&
                        (A.z = h(A.x, A.y, f, r, u)), A.Vo = A.Ga, A = A.dl = A.next; while (A !== F);
                        A.Vo.dl = null;
                        A.Vo = null;
                        var F = A, B, G, H, I, M, L, O = 1;
                        do {
                            A = F;
                            H = F = null;
                            for (I = 0; A;) {
                                I++;
                                G = A;
                                for (B = M = 0; B < O && (M++, G = G.dl, G); B++) ;
                                for (L = O; 0 < M || 0 < L && G;) 0 !== M && (0 === L || !G || A.z <= G.z) ? (B = A, A = A.dl, M--) : (B = G, G = G.dl, L--), H ? H.dl = B : F = B, B.Vo = H, H = B;
                                A = G
                            }
                            H.dl = null;
                            O *= 2
                        } while (1 < I)
                    }
                    for (F = a; a.Ga !== a.next;) {
                        A = a.Ga;
                        G = a.next;
                        if (u) a:if (H = a.Ga, I = a.next, 0 <= l(H, a, I)) H = !1; else {
                            M = h(H.x < a.x ? H.x < I.x ? H.x : I.x : a.x < I.x ? a.x : I.x, H.y < a.y ? H.y < I.y ? H.y : I.y : a.y < I.y ? a.y : I.y, f, r, u);
                            O = h(H.x >
                            a.x ? H.x > I.x ? H.x : I.x : a.x > I.x ? a.x : I.x, H.y > a.y ? H.y > I.y ? H.y : I.y : a.y > I.y ? a.y : I.y, f, r, u);
                            for (B = a.dl; B && B.z <= O;) {
                                if (B !== a.Ga && B !== a.next && k(H.x, H.y, a.x, a.y, I.x, I.y, B.x, B.y) && 0 <= l(B.Ga, B, B.next)) {
                                    H = !1;
                                    break a
                                }
                                B = B.dl
                            }
                            for (B = a.Vo; B && B.z >= M;) {
                                if (B !== a.Ga && B !== a.next && k(H.x, H.y, a.x, a.y, I.x, I.y, B.x, B.y) && 0 <= l(B.Ga, B, B.next)) {
                                    H = !1;
                                    break a
                                }
                                B = B.Vo
                            }
                            H = !0
                        } else a:if (H = a.Ga, I = a.next, 0 <= l(H, a, I)) H = !1; else {
                            for (M = a.next.next; M !== a.Ga;) {
                                if (k(H.x, H.y, a.x, a.y, I.x, I.y, M.x, M.y) && 0 <= l(M.Ga, M, M.next)) {
                                    H = !1;
                                    break a
                                }
                                M = M.next
                            }
                            H = !0
                        }
                        if (H) b.push(A.le /
                            e), b.push(a.le / e), b.push(G.le / e), s(a), F = a = G.next; else if (a = G, a === F) {
                            if (C) if (1 === C) {
                                C = b;
                                F = e;
                                A = a;
                                do G = A.Ga, H = A.next.next, !m(G, H) && n(G, A, A.next, H) && p(G, H) && p(H, G) && (C.push(G.le / F), C.push(A.le / F), C.push(H.le / F), s(A), s(A.next), A = a = H), A = A.next; while (A !== a);
                                a = A;
                                d(a, b, e, f, r, u, 2)
                            } else {
                                if (2 === C) a:{
                                    C = a;
                                    do {
                                        for (F = C.next.next; F !== C.Ga;) {
                                            if (A = C.le !== F.le) if (A = void 0, A = C.next.le !== F.le) if (A = void 0, A = C.Ga.le !== F.le) {
                                                A = A = void 0;
                                                b:{
                                                    A = C;
                                                    do {
                                                        if (A.le !== C.le && A.next.le !== C.le && A.le !== F.le && A.next.le !== F.le && n(A, A.next, C,
                                                            F)) {
                                                            A = !0;
                                                            break b
                                                        }
                                                        A = A.next
                                                    } while (A !== C);
                                                    A = !1
                                                }
                                                if (A = !A) if (A = void 0, A = p(C, F)) if (A = void 0, A = p(F, C)) {
                                                    A = C;
                                                    G = !1;
                                                    H = (C.x + F.x) / 2;
                                                    I = (C.y + F.y) / 2;
                                                    do A.y > I !== A.next.y > I && A.next.y !== A.y && H < (A.next.x - A.x) * (I - A.y) / (A.next.y - A.y) + A.x && (G = !G), A = A.next; while (A !== C);
                                                    A = G
                                                }
                                            }
                                            if (A) {
                                                a = q(C, F);
                                                C = c(C, C.next);
                                                a = c(a, a.next);
                                                d(C, b, e, f, r, u);
                                                d(a, b, e, f, r, u);
                                                break a
                                            }
                                            F = F.next
                                        }
                                        C = C.next
                                    } while (C !== a)
                                }
                            } else d(c(a), b, e, f, r, u, 1);
                            break
                        }
                    }
                }
            }

            function e(a, b) {
                return a.x - b.x
            }

            function f(a, b) {
                var c = b, d = a.x, e = a.y, f = -Infinity, h;
                do {
                    if (e <= c.y && e >= c.next.y &&
                        c.next.y !== c.y) {
                        var l = c.x + (e - c.y) * (c.next.x - c.x) / (c.next.y - c.y);
                        if (l <= d && l > f) {
                            f = l;
                            if (l === d) {
                                if (e === c.y) return c;
                                if (e === c.next.y) return c.next
                            }
                            h = c.x < c.next.x ? c : c.next
                        }
                    }
                    c = c.next
                } while (c !== b);
                if (!h) return null;
                if (d === f) return h.Ga;
                for (var l = h, m = h.x, n = h.y, r = Infinity, s, c = h.next; c !== l;) d >= c.x && c.x >= m && d !== c.x && k(e < n ? d : f, e, m, n, e < n ? f : d, e, c.x, c.y) && (s = Math.abs(e - c.y) / (d - c.x), (s < r || s === r && c.x > h.x) && p(c, a) && (h = c, r = s)), c = c.next;
                return h
            }

            function h(a, b, c, d, e) {
                a = 32767 * (a - c) * e;
                b = 32767 * (b - d) * e;
                a = (a | a << 8) & 16711935;
                a = (a | a << 4) & 252645135;
                a = (a | a << 2) & 858993459;
                b = (b | b << 8) & 16711935;
                b = (b | b << 4) & 252645135;
                b = (b | b << 2) & 858993459;
                return (a | a << 1) & 1431655765 | ((b | b << 1) & 1431655765) << 1
            }

            function k(a, b, c, d, e, f, h, k) {
                return 0 <= (e - h) * (b - k) - (a - h) * (f - k) && 0 <= (a - h) * (d - k) - (c - h) * (b - k) && 0 <= (c - h) * (f - k) - (e - h) * (d - k)
            }

            function l(a, b, c) {
                return (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y)
            }

            function m(a, b) {
                return a.x === b.x && a.y === b.y
            }

            function n(a, b, c, d) {
                return m(a, b) && m(c, d) || m(a, d) && m(c, b) ? !0 : 0 < l(a, b, c) !== 0 < l(a, b, d) && 0 < l(c, d, a) !== 0 < l(c, d, b)
            }

            function p(a,
                       b) {
                return 0 > l(a.Ga, a, a.next) ? 0 <= l(a, b, a.next) && 0 <= l(a, a.Ga, b) : 0 > l(a, b, a.Ga) || 0 > l(a, a.next, b)
            }

            function q(a, b) {
                var c = new u(a.le, a.x, a.y), d = new u(b.le, b.x, b.y), e = a.next, f = b.Ga;
                a.next = b;
                b.Ga = a;
                c.next = e;
                e.Ga = c;
                d.next = c;
                c.Ga = d;
                f.next = d;
                d.Ga = f;
                return d
            }

            function r(a, b, c, d) {
                a = new u(a, b, c);
                d ? (a.next = d.next, a.Ga = d, d.next.Ga = a, d.next = a) : (a.Ga = a, a.next = a);
                return a
            }

            function s(a) {
                a.next.Ga = a.Ga;
                a.Ga.next = a.next;
                a.Vo && (a.Vo.dl = a.dl);
                a.dl && (a.dl.Vo = a.Vo)
            }

            function u(a, b, c) {
                this.le = a;
                this.x = b;
                this.y = c;
                this.dl = this.Vo =
                    this.z = this.next = this.Ga = null;
                this.x8 = !1
            }

            return {
                QK: function (h, k, l) {
                    l = l || 2;
                    var m = k && k.length, n = m ? k[0] * l : h.length, p = a(h, 0, n, l, !0), r = [];
                    if (!p) return r;
                    var s, u, B, G;
                    if (m) {
                        var H = l, m = [], I, M, L;
                        G = 0;
                        for (I = k.length; G < I; G++) {
                            M = k[G] * H;
                            L = G < I - 1 ? k[G + 1] * H : h.length;
                            M = a(h, M, L, H, !1);
                            M === M.next && (M.x8 = !0);
                            var O = L = M;
                            do L.x < O.x && (O = L), L = L.next; while (L !== M);
                            m.push(O)
                        }
                        m.sort(e);
                        for (G = 0; G < m.length; G++) {
                            k = m[G];
                            H = p;
                            if (H = f(k, H)) k = q(H, k), c(k, k.next);
                            p = c(p, p.next)
                        }
                    }
                    if (h.length > 80 * l) {
                        s = B = h[0];
                        u = m = h[1];
                        for (H = l; H < n; H += l) G = h[H], k =
                            h[H + 1], G < s && (s = G), k < u && (u = k), G > B && (B = G), k > m && (m = k);
                        B = Math.max(B - s, m - u);
                        B = 0 !== B ? 1 / B : 0
                    }
                    d(p, r, l, s, u, B);
                    return r
                }
            }
        };
        a.m$ = a.YE()
    })(g);
    (function (a) {
        function b(a) {
            var b = a.length;
            2 < b && a[b - 1][0] == a[0][0] && a[b - 1][1] == a[0][1] && a.pop()
        }

        function c(a, b) {
            for (var c = 0; c < b.length; c++) a.push(b[c][0]), a.push(b[c][1])
        }

        a.Nn = {
            ki: function (a) {
                for (var b = a.length, c = 0, h = b - 1, k = 0; k < b; h = k++) c += a[h][0] * a[k][1] - a[k][0] * a[h][1];
                return 0.5 * c
            }, R4: function (b) {
                return 0 > a.Nn.ki(b)
            }, normalize: function (b) {
                var c;
                if (b) {
                    c = [];
                    for (var f = 0, h = b.length; f < h; f += 1) c[f] = b[f] instanceof Array ? this.normalize(b[f]) : b[f] instanceof a.U ? [b[f].Q, b[f].P] : b[f] instanceof a.G ? [b[f].x, b[f].y] :
                        b[f]
                }
                return c
            }, Th: function (d, e) {
                e = e || [];
                var f = [], h = [];
                b(d);
                c(f, d);
                var k = d.length;
                e.forEach(b);
                for (var l = 0; l < e.length; l++) h.push(k), k += e[l].length, c(f, e[l]);
                return a.m$.QK(f, h)
            }
        }
    })(g);
    g.VH = function (a, b, c) {
        g.c.add({CLASS_NAME: "convertFrom"}, b);
        var d = g.A.Ud + "/v3/assistant/coordinate/convert";
        a = g.a.Ia(a);
        var e = [];
        if (a instanceof Array) {
            for (var f = 0, h = a.length; f < h; f += 1) e.push(a[f] + "");
            e = e.join(";")
        } else e = a + "";
        b = ["key=" + g.A.key, "s=rsv3", "locations=" + e, "coordsys=" + (b || "gps")];
        d += 0 < b.length ? "?" + b.join("&") : "";
        d = new g.fb.vb(d, {callback: "callback"});
        d.h("complete", function (a) {
            if ("1" === a.status) {
                a = a.locations.split(";");
                for (var b = 0; b < a.length; b += 1) {
                    var d = a[b].split(",");
                    a[b] = new AMap.LngLat(d[0],
                        d[1])
                }
                c && "function" === typeof c && c("complete", {info: "ok", locations: a})
            } else c && "function" === typeof c && c("error", a.info)
        }, this);
        d.h("error", function (a) {
            c && "function" === typeof c && c("error", a.info)
        }, this)
    };
    g.fb = g.fb || {};
    g.fb.KL = g.aa.extend({
        ka: [g.va], r: function (a, b) {
            this.B = {callback: "cbk", type: "json", charset: "utf-8"};
            b = b || {};
            g.a.Db(this, b);
            this.url = a;
            this.send(a, b.vd, b.l2, b.OT, b.responseType)
        }, send: function (a) {
            var b = g.j.create("script");
            b.type = "text/javascript";
            b.charset = this.B.charset;
            var c = this;
            g.l.ye ? b.onreadystatechange = function () {
                "loaded" !== this.readyState && "complete" !== this.readyState || c.q("complete")
            } : (b.onload = function () {
                c.q("complete")
            }, b.onerror = function () {
                c.q("error", {status: 0, info: "service error", url: a})
            });
            b.src = a;
            document.getElementsByTagName("head")[0].appendChild(b)
        }
    });
    g.fb.vb = g.fb.KL.extend({
        nma: function () {
            if (g.a.T7) return g.a.IK.push(this), !0
        }, Tva: function () {
            this.q("error", {info: "TIME_OUT_A"})
        }, send: function (a, b, c, d) {
            function e() {
                window[f] = null;
                try {
                    window[f] = null
                } catch (a) {
                }
                h.onerror = null;
                h.parentNode && h.parentNode.removeChild(h)
            }

            if (!this.B.Lx || !this.nma()) {
                a = encodeURI(a);
                var f = this.B.fun;
                if (!f || window[f]) f = g.a.A3("jsonp_", 6) + "_";
                var h = document.createElement("script");
                h.type = "text/javascript";
                h.charset = "utf-8";
                h.async = !0;
                var k = this;
                g.l.ye || (h.onerror = function () {
                    e();
                    k.q("error", {info: "REQUEST_FAILED", url: a})
                });
                window[f] = function (a) {
                    e();
                    if (k.B.callbackFunction) k.B.callbackFunction.call(k.B.context, a); else if (3E4 === a.errcode && a.data) g.a.T7 = !0, g.qb.load("AMap.AntiCrabFrame", function () {
                        g.a.Lx || (g.a.Lx = new g.X9);
                        g.a.IK.push(k);
                        g.a.Lx.open(k.B.vd, a.data.host, k.KD || "", k.url)
                    }); else {
                        if (a instanceof Array || "string" === typeof a) a = {data: a};
                        a.ZCa = f;
                        k.q("complete", a)
                    }
                };
                b = "?";
                -1 !== a.indexOf("?") && (b = "&");
                b = a + b + this.B.callback + "=" + f;
                if (-1 !== a.indexOf(g.A.Ud + "/v") || -1 !== a.indexOf("yuntuapi.amap.com/datasearch") ||
                    -1 !== a.indexOf("webapi.amap.com/")) b = b + "&platform=JS&logversion=2.0" + ("&appname=" + g.A.hu), b += "&csid=" + g.a.A9(), b += "&sdkversion=" + g.A.ur;
                if (c = this.B.jI) {
                    var l = [], m;
                    for (m in c) c.hasOwnProperty(m) && (l.push(m + "=" + c[m]), b += "&" + m + "=" + encodeURIComponent(c[m]));
                    k.KD = l.join("&")
                }
                h.src = d ? b + "&rereq=true" : b;
                g.fb.vb.kda = document.getElementsByTagName("body")[0] || document.getElementsByTagName("head")[0];
                g.fb.vb.kda.appendChild(h)
            }
        }
    });
    g.fb.XMLHttpRequest = g.fb.KL.extend({
        send: function (a, b, c, d, e) {
            var f = this;
            if ((g.l.ye || g.l.y4) && window.XDomainRequest) {
                var h = this.Q9 = new XDomainRequest;
                h.onerror = function (b) {
                    f.q("error", {url: a, data: b})
                };
                h.onload = function () {
                    f.q("complete", {url: a, data: h.responseText})
                };
                h.open(b || "GET", a);
                setTimeout(function () {
                    h.send(c || void 0)
                }, 0)
            } else {
                var k = this.Q9 = new XMLHttpRequest;
                k.onreadystatechange = function () {
                    4 === k.readyState && 200 === k.status ? f.q("complete", {
                            url: a,
                            data: "arraybuffer" === k.responseType ? k.response : k.responseText
                        }) :
                        404 === k.status && (k.abort(), f.q("error", {url: a, data: "404"}))
                };
                k.onerror = function (b) {
                    k.abort();
                    f.q("error", {url: a, data: b})
                };
                k.open(b || "GET", a);
                "POST" === b && k.setRequestHeader("Content-Type", d || "application/x-www-form-urlencoded");
                e && (k.responseType = e);
                k.send(c || void 0)
            }
        }, abort: function () {
            this.Q9.abort()
        }
    });
    for (var $ = {
        v: "1.4.15",
        Pixel: g.G,
        LngLat: g.U,
        Size: g.xd,
        Bounds: g.re,
        ArrayBounds: g.dp,
        PixelBounds: g.Jf,
        Panorama: g.eaa,
        PanoramaMarker: g.faa,
        Map: z.Kb,
        View2D: z.uF,
        GroundImage: z.o.pL,
        Marker: z.w.rb,
        ImageMarker: z.w.Eza,
        Text: z.w.kW,
        Icon: z.w.ai,
        MarkerShape: z.w.W$,
        Polyline: z.w.Xb,
        BezierCurve: z.w.Vz,
        Polygon: z.w.zc,
        Circle: z.w.$g,
        CircleMarker: z.w.vV,
        Ellipse: z.w.nt,
        Rectangle: z.w.tt,
        ContextMenu: z.w.Hn,
        InfoWindow: z.w.Qe,
        Buildings: z.o.c$,
        TileLayer: z.o.ob,
        ImageLayer: z.o.dA,
        CanvasLayer: z.o.e$,
        VideoLayer: z.o.Laa,
        VectorLayer: z.o.ad,
        MassMarks: z.o.Y$,
        CompositeLayer: z.o.i$,
        LabelsLayer: z.o.Wq,
        LabelMarker: z.w.P$,
        LayerGroup: z.o.uL,
        OverlayGroup: z.w.Kn,
        GeoJSON: z.w.GV,
        CANVAS: "canvas",
        DOM: "dom",
        convertFrom: g.VH,
        Http: {JSONP: g.fb.vb},
        event: {CLASS_NAME: "AMap.event"}
    }, wc = "addDomListener addDomListenerOnce addListener addListenerOnce clearInstanceListeners clearListeners removeListener trigger".split(" "), xc = 0; xc < wc.length; xc += 1) $.event[wc[xc]] = function () {
        var a = g.event[wc[xc]], b = wc[xc];
        return function () {
            g.c.xa($.event);
            g.c.add($.event, b);
            return a.apply(g.event, Array.prototype.slice.call(arguments))
        }
    }();
    $.GeometryUtil = {CLASS_NAME: "AMap.GeometryUtil"};
    for (var yc = "distance ringArea isClockwise makesureClockwise makesureAntiClockwise distanceOfLine ringRingClip doesSegmentsIntersect doesSegmentLineIntersect doesSegmentRingIntersect doesSegmentPolygonIntersect doesLineLineIntersect doesLineRingIntersect doesPolygonPolygonIntersect doesRingRingIntersect isPointInRing isRingInRing isPointInPolygon isPointOnSegment isPointOnLine isPointOnRing isPointOnPolygon closestOnSegment closestOnLine distanceToSegment distanceToLine distanceToPolygon".split(" "), xc =
        0; xc < yc.length; xc += 1) $.GeometryUtil[yc[xc]] = function () {
        var a = g.Vq[yc[xc]], b = yc[xc];
        return function () {
            g.c.xa($.GeometryUtil);
            g.c.add($.GeometryUtil, b);
            return a.apply(g.Vq, Array.prototype.slice.call(arguments))
        }
    }();
    $.GeometryUtil.triangulateShape = function (a, b) {
        g.c.xa($.GeometryUtil);
        g.c.add($.GeometryUtil, "triangulateShape");
        a = g.Nn.normalize(a);
        b = g.Nn.normalize(b);
        return g.Nn.Th(a, b)
    };
    $.PlaneGeometryUtil = {CLASS_NAME: "AMap.PlaneGeometryUtil"};
    for (xc = 0; xc < yc.length; xc += 1) $.PlaneGeometryUtil[yc[xc]] = function () {
        var a = g.Gj[yc[xc]], b = yc[xc];
        return function () {
            g.c.xa($.PlaneGeometryUtil);
            g.c.add($.PlaneGeometryUtil, b);
            return a.apply(g.Gj, Array.prototype.slice.call(arguments))
        }
    }();
    $.PlaneGeometryUtil.triangulateShape = function (a, b) {
        g.c.xa($.PlaneGeometryUtil);
        g.c.add($.PlaneGeometryUtil, "triangulateShape");
        a = g.Nn.normalize(a);
        b = g.Nn.normalize(b);
        return g.Nn.Th(a, b)
    };
    $.plugin = $.service = z.Kb.prototype.plugin;
    $.TileLayer.Satellite = z.o.ob.eW;
    $.TileLayer.RoadNet = z.o.ob.bW;
    $.TileLayer.google = z.o.ob.bF;
    $.TileLayer.Flexible = z.o.ob.aA;
    $.TileLayer.WMS = z.o.ob.Maa;
    $.TileLayer.WMTS = z.o.ob.Naa;
    $.TileLayer.Traffic = z.o.ob.mW;
    $.Panorama.Events = z.event;
    $.TileLayer.PanoramaLayer = z.o.ob.Mza;
    $.UA = {ie: g.l.js, ielt9: g.l.ye, ielt11: g.l.Vqa, mobile: g.l.ba, android: g.l.Ql, ios: g.l.gD};
    $.Browser = {
        ua: navigator.userAgent,
        mobile: g.l.ba,
        plat: g.l.dz,
        mac: g.l.Sy,
        windows: g.l.Yya,
        ios: g.l.gD,
        iPad: g.l.Oqa,
        iPhone: g.l.Pqa,
        android: g.l.Ql,
        android23: g.l.jla,
        chrome: g.l.chrome,
        firefox: g.l.GQ,
        safari: g.l.fE,
        wechat: g.l.I9,
        uc: g.l.nya,
        qq: g.l.Yua,
        ie: g.l.js,
        ie6: g.l.ti,
        ie7: g.l.Zu,
        ie8: g.l.ye && !g.l.Zu && !g.l.ti,
        ie9: g.l.y4,
        ie10: g.l.x4,
        ie11: g.l.Sqa,
        edge: g.l.uoa,
        ielt9: g.l.ye,
        baidu: g.l.CH,
        isLocalStorage: g.l.ss,
        isGeolocation: !!navigator.geolocation,
        mobileWebkit: g.l.Zsa,
        mobileWebkit3d: g.l.U5,
        mobileOpera: !!g.l.Ysa,
        retina: g.l.Mc,
        touch: !!g.l.Ff,
        msPointer: !!g.l.W5,
        pointer: !!g.l.gT,
        webkit: g.l.G9,
        ie3d: g.l.Tqa,
        webkit3d: g.l.H9,
        gecko3d: g.l.ipa,
        opera3d: g.l.Sta,
        any3d: g.l.xH,
        isCanvas: g.l.Xk,
        isSvg: g.l.Jo,
        isVML: g.l.js,
        isWorker: !!window.Worker,
        isWebsocket: !!window.WebSocket,
        isWebGL: function () {
            for (var a = document.createElement("canvas"), b = ["webgl", "experimental-webgl", "moz-webgl"], c = null, d = 0; d < b.length; d += 1) {
                try {
                    c = a.getContext(b[d])
                } catch (e) {
                }
                if (c) if (c.drawingBufferWidth !== a.width || c.drawingBufferHeight !== a.height) break; else return !0
            }
            return !1
        }
    };
    $.Util = {CLASS_NAME: "AMap.Util"};
    var Ic = {
        colorNameToHex: g.a.QH,
        rgbHex2Rgba: g.a.G7,
        argbHex2Rgba: g.a.zr,
        isEmpty: g.a.vi,
        deleteItemFromArray: g.a.ay,
        deleteItemFromArrayByIndex: g.a.ro,
        indexOf: g.a.indexOf,
        format: g.a.hc,
        isArray: g.a.isArray,
        isDOM: g.a.jJ,
        includes: g.a.ka,
        requestIdleCallback: g.a.PT,
        cancelIdleCallback: g.a.DP,
        requestAnimFrame: g.a.Rc,
        cancelAnimFrame: g.a.ni,
        color2RgbaArray: g.a.Sl,
        color2Rgba: g.a.Sma
    };
    for (xc in Ic) Ic.hasOwnProperty(xc) && "function" == typeof Ic[xc] && ($.Util[xc] = function () {
        var a = xc;
        return function () {
            g.c.xa($.Util);
            g.c.add($.Util, a);
            return Ic[a].apply(g.a, Array.prototype.slice.call(arguments))
        }
    }());
    $.DomUtil = {CLASS_NAME: "AMap.DomUtil"};
    var Jc = {
        getViewport: g.j.RI,
        getViewportOffset: g.j.uR,
        create: g.j.create,
        setClass: g.j.pwa,
        hasClass: g.j.pn,
        addClass: g.j.Sa,
        removeClass: g.j.ab,
        setOpacity: g.j.zq,
        rotate: g.j.rotate,
        setCss: g.j.Wa,
        empty: g.j.ZD,
        remove: g.j.remove,
        TRANSFORM: g.j.jg,
        TRANSITION: g.j.qF
    };
    for (xc in Jc) Jc.hasOwnProperty(xc) && "function" == typeof Jc[xc] && ($.DomUtil[xc] = function () {
        var a = xc;
        return function () {
            g.c.xa($.DomUtil);
            g.c.add($.DomUtil, a);
            return Jc[a].apply(g.j, Array.prototype.slice.call(arguments))
        }
    }());
    var Kc = g.A;
    $.User = {key: Kc.key};
    window.AMap = $;
    window.AMap.BuryPoint = g.BuryPoint;
    window.AMap.Class = g.aa;
    if (!Kc.qD && "undefined" !== typeof arguments && arguments.callee) try {
        if (g.l.ss && window.localStorage) {
            var Lc = window.localStorage["_AMap_" + g.CJ];
            Lc && JSON.parse(Lc).version === Kc.Cj || window.localStorage.setItem("_AMap_" + g.CJ, JSON.stringify({
                version: Kc.Cj,
                script: "(" + arguments.callee + ")(config)"
            }));
            new g.fb.XMLHttpRequest(Kc.yb + "/maps/cookie?key=amap_ver&value=" + Kc.Cj, {vd: "GET", OT: "text/plain"})
        }
    } catch (Mc) {
    }
    g.Dj = g.aa.extend({
        r: function (a, b, c, d) {
            this.start = a;
            this.end = b;
            this.transition = c;
            this.precision = d || 0;
            this.Gv = !1;
            this.update = g.a.bind(this.update, this);
            return this
        }, Cn: function (a) {
            this.dh = this.startTime = +new Date;
            this.frames = 0;
            this.Gv = !0;
            this.ko = g.a.Rc(this.update);
            this.Xha = g.a.bind(this.lq, a || this)
        }, update: function () {
            this.frames += 1;
            var a = +new Date, b = a - this.startTime,
                b = this.transition ? this.transition(this.start, this.end, b, this.frames, a - this.dh) : null;
            "number" === typeof b && Math.abs(b - this.end) < this.precision ?
                (this.stop(), b = this.end) : this.ko = g.a.Rc(this.update);
            this.dh = a;
            this.Xha(b)
        }, stop: function (a) {
            g.a.ni(this.ko);
            a && this.update();
            this.Gv = !1
        }
    });
    g.Dj.Easing = {
        Linear: {
            None: function (a) {
                return a
            }
        }, Bounce: {
            In: function (a) {
                return 1 - (a < 1 / 2.75 ? 7.5625 * a * a : a < 2 / 2.75 ? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75 : a < 2.5 / 2.75 ? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375 : 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375)
            }, Out: function (a) {
                return g.Dj.Easing.Bounce.In(1 - a)
            }
        }, Cubic: {
            In: function (a) {
                return 1 - a * a * a
            }, Out: function (a) {
                a = 1 - a;
                return 1 - a * a * a
            }
        }
    };
    g.Kb = g.aa.extend({
        ka: [g.va, g.Re, g.tJ], r: function (a, b) {
            this.mc = g.a.bind(this.mc, this);
            this.C = b;
            this.hj = b.hj;
            this.um = "";
            this.bh = this.Fg = this.Nk = !1;
            this.Rn = {};
            this.K = a;
            this.Zfa();
            this.ora();
            this.W("zooms", b, !0);
            this.W("size", b, !0);
            this.W("limitBounds", b);
            this.W("view", b);
            this.W("nolimg", b, !0);
            this.W("mapNumber", b, !0);
            this.W("lang", b, !0);
            this.W("features", b, !0);
            this.W("styleID", b, !0);
            this.W("forceBig", b, !0);
            this.W("mode", b, !0);
            this.W("showBuildingBlock", b, !0);
            this.W("mapStyle", b);
            var c = this.get("mapStyle");
            this.ue = g.A.ue[c] || g.A.ue["default"];
            this.qH = "#a3ccff";
            this.GB = b.get("skyColor") || "#cce0ff";
            g.A.tQ && this.W("editEnable", b);
            g.A.tQ && this.yd ? this.W("style", b, !0) : this.W("styleUrl", b);
            this.W("hightlight", b, !0);
            this.W("labelzIndex", b, !0);
            if (g.l.HK) {
                c = new z.o.ob({innerLayer: !0, zIndex: b.get("labelzIndex"), visible: !1});
                this.Cc = new g.o.Jj(c, this, ["point", "road"]);
                this.Cc.type = "\u77e2\u91cf\u6807\u6ce8";
                var d = this.C.get("defaultLayer");
                d && c.W("rejectMapMask", d, !0);
                b.labelsLayer = this.Cc.T;
                this.Cc.T.h("complete",
                    this.hr, this, !0);
                this.Cc.T.h("renderComplete", this.hr, this);
                this.Cc.aB = this.Cc.Pg = !0
            }
            this.W("isHotspot", b, !0);
            this.W("layers", b);
            this.W("overlays", b);
            this.W("infos", b, !0);
            this.W("contextmenus", b, !0);
            this.W("controls", b);
            this.W("bounds", b);
            this.W("draw", b);
            this.Se("zoomAndCenter destroy defaultCursor jogEnable animateEnable baseRender overlayRender gridMapForeign vectorMapForeign".split(" "), b);
            this.Se("rotateEnable pitchEnable dragEnable keyboardEnable doubleClickZoom scrollWheel zoomEnable touchZoom".split(" "),
                b, !0);
            this.get("jogEnable") ? this.av = !0 : this.av = !1;
            this.ofa();
            this.vfa();
            this.TY && this.TY();
            this.W("resizeEnable", b);
            this.C.map = this;
            c = this.get("size");
            c = c.width * c.height / 65536;
            g.l.Mc && 3 < c && (this.s1 = !0);
            this.V = {Fd: !1};
            this.pK()
        }, editEnableChanged: function () {
            this.yd = this.get("editEnable")
        }, labelzIndexChanged: function () {
            this.Cc && this.Cc.set("zIndex", this.get("labelzIndex"))
        }, styleChanged: function () {
            this.bl = !0
        }, mapStyleChanged: function () {
            if (this.C.wi) {
                this.um && (this.set("style", ""), this.vu = this.um = "");
                var a = this.get("mapStyle");
                this.bl = !0;
                this.ue = g.A.ue[a] || g.A.ue["default"];
                this.YD()
            }
        }, styleUrlChanged: function () {
            if (this.C.wi) {
                var a = this.get("styleUrl") || "";
                if (a !== this.um) {
                    var b = -1 !== a.indexOf("?isPublic=true"), a = a.substr(0, 46), c = a.split("amap://styles/")[1];
                    "normal" === c ? (this.um = "", this.set("nolimg", !!this.C.get("nolimg_param")), this.set("style", ""), this.vu = "") : (this.Hz = !0, this.set("nolimg", !0), b = new g.fb.vb(32 > c.length ? g.A.Fc + "://webapi.amap.com/style?name=" + c + "&key=" + g.A.key : g.A.Fc + "://webapi.amap.com/v4/map/styles?styleid=" +
                        c + "&s=rsv3&key=" + g.A.key + (b ? "&ispublic=1" : ""), {callback: "callback"}), b.h("complete", function (a) {
                        a.data && a.data.content ? this.set("style", JSON.parse(a.data.content)) : this.set("style", "");
                        this.Hz = !1
                    }, this), b.h("error", function () {
                        this.Hz = !1
                    }, this), this.um = a, this.YD())
                }
            }
        }, V7: function (a) {
            this.K.style.background = a
        }, kpa: function (a) {
            var b = this.get("center");
            if (a.contains(b)) return null;
            a = g.Vq.closestOnLine(b, a.CU().path);
            return new g.U(a[0], a[1])
        }, pma: function () {
            var a = this.get("limitBounds"), b = this.get("bounds");
            b.sc && b.sc.Q > b.kc.Q && (b.kc.Q += 360);
            if (!a.contains(b)) {
                if (b instanceof g.dp) return this.kpa(a, b);
                var c = this.get("center").lb();
                a.pj() < b.pj() ? c.Q = a.ri().Q : (a.sc.Q > b.sc.Q && (c.Q += a.sc.Q - b.sc.Q), a.kc.Q < b.kc.Q && (c.Q += a.kc.Q - b.kc.Q));
                a.nj() < b.nj() ? c.P = a.ri().P : (a.sc.P > b.sc.P && (c.P += a.sc.P - b.sc.P), a.kc.P < b.kc.P && (c.P += a.kc.P - b.kc.P));
                return c
            }
        }, wO: function () {
            var a = this.lU;
            this.C.refreshSize();
            var b = this.get("size");
            b && a && !b.cb(a) && (this.lU = b, this.Lv = !0, this.set("display"), this.D7(b), this.get("resizeEnable") &&
            this.oa("resize", {rta: a, f6: b}))
        }, I_: function () {
            var a = this;
            a.wO();
            a.qO = setTimeout(function () {
                a.I_()
            }, 200)
        }, sca: function () {
            this.qO && (clearTimeout(this.qO), this.qO = null)
        }, Zfa: function () {
            this.C.D = !0;
            this.lU = this.C.getSize();
            this.C.D = !1;
            if (g.l.ye || g.l.I9 && g.l.gD || g.l.Nsa) this.I_(); else {
                var a = this;
                g.F.dla(this.K, function (b) {
                    a.wO(b)
                })
            }
        }, ora: function () {
            var a = this.K;
            g.j.Sa(a, "amap-container");
            var b = {};
            b.Zc = g.j.create("div", a, "amap-maps");
            this.Fl = g.j.create("div", a);
            this.Fl.style.display = "none";
            b.Fr = g.j.create("div",
                b.Zc, "amap-drags");
            b.o = g.j.create("div", b.Fr, "amap-layers");
            b.w = g.j.create("div", b.Fr, "amap-overlays");
            b.controls = g.j.create("div", a, "amap-controls");
            b.nv = g.j.create("a", a, "amap-logo");
            var c = window.location.host;
            -1 === c.indexOf("amap.com") && -1 === c.indexOf("gaode.com") && (b.nv.href = g.l.ba ? "http://m.amap.com" : "http://gaode.com", b.nv.target = "_blank");
            g.j.create("img", b.nv).src = g.l.Mc ? this.C.B.logoUrlRetina : this.C.B.logoUrl;
            b.gn = g.j.create("div", a, "amap-copyright");
            b.gn.style.display = "none";
            350 < g.j.RI(this.K).width &&
            (b.gn.innerHTML = this.C.B.copyright, b.gn.J5 = g.j.create("span", b.gn, "amap-mcode"), this.YD());
            this.Ta = b
        }, YD: function () {
            var a = this.get("layers");
            if (a) {
                for (var b = -1, c = "", d = 0; d < a.length; d += 1) {
                    var e = a[d].get("mapNumber"), f = a[d].get("zIndex", null, !0);
                    e && f > b && a[d].get("visible") && (c = e, b = f)
                }
                this.set("mapNumber", c);
                this.C.D = !0;
                a = this.C.getMapStyle();
                this.C.D = !1;
                "GS(2018)1709" === c && a && "normal" !== a && "amap://styles/normal" !== a && (c = "", this.Ta.gn.style.visibility = "hidden", this.Ta.nv.style.display = "none");
                c && this.Ta.gn.J5 &&
                (this.Ta.gn.J5.innerHTML = "- " + c + "\u53f7", this.Ta.gn.style.visibility = "visible", this.Ta.nv.style.display = "block");
                return c
            }
        }, YX: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : !1;
            g.Hj && (a ? g.Hj.flush() : this.b3 || (this.b3 = g.a.Rc(function () {
                g.Hj.flush();
                this.b3 = null
            }, this)))
        }, CT: function (a) {
            var b = this, c = this.C.get("rasterLayer");
            c && (this.C.set("rasterLayer", void 0), this.C.j7 = !0, this.C.kk = this.C.Ka, this.Uk && (this.Uk.WI = !1), c.o && (c.o.AD = !0), a || (this.DT = g.a.PT(function () {
                b.DT = null;
                b.C && b.C.lk(c)
            })));
            a && this.DT && g.a.DP(this.DT)
        }, hr: function () {
            function a() {
                for (var a = d.get("layers"), b = d.get("zoom"), c = 0; c < a.length; c += 1) {
                    var e = a[c].get("zooms");
                    if (!(a[c].kk || a[c].H4 || !e || b > e[1] || b < e[0] || !a[c].get("visible") || a[c].o && a[c].o.ea && 0 === a[c].o.ea.length || a[c].o && a[c].o.AD || a[c].o && a[c].o.Ka)) return !1
                }
                a = d.C.get("features");
                return ("all" === a || g.a.ka(a, "point")) && d.Cc && d.Cc.get("visible") && 0 < d.Cc.ea.length && !d.Cc.Ka && !d.Cc.iO ? !1 : !0
            }

            function b() {
                var a = {id: d.C.id};
                g.te.af.end(g.extend(a, {key: "rds"}));
                g.te.af.send(g.extend(a, {
                    params: {
                        rs: d.get("baseRender"),
                        viewmode: d.C.view.type,
                        fd: 0 === d.qJ ? 1 : 0,
                        raster: d.C.kk ? 1 : 0
                    }
                }));
                d.C && d.C.lm && d.C.lm.qB && d.C.lm.qB();
                d.C.c7 = 1;
                d.YX();
                d.set("display");
                d.nD = !0
            }

            function c() {
                g.te.af.end({id: d.C.id, key: "rd"});
                g.a.Rc(function () {
                    this.q("complete")
                }, d);
                d.C.Ka = !0;
                d.set("display")
            }

            if (!this.dQ) if (this.nD) 1 === this.At && 13 === this.get("zoom") && (g.a.MC.stop(this.aG), g.te.af.send({
                id: this.C.id,
                params: {fps: this.aG.MC, type: "fps", rs: this.get("baseRender")}
            }), this.At = 2), this.YX();
            else {
                var d = this, e = this.C.get("rasterLayer"), f = a();
                e ? (e.o && e.o.Ka && (this.C.Ka || c()), f && (this.C.Ka || c(), this.CT(), b())) : f && (this.C.Ka || c(), b(), this.C.j7 = !0)
            }
        }, layersChanged: function () {
            this.za = this.za || [];
            for (var a = this.get("layers"), b = this.za.length - 1; 0 <= b; b -= 1) this.za[b] === this.sd || this.za[b] === this.Js || this.za[b].aB || this.za[b].T.aB || -1 !== g.a.indexOf(a, this.za[b].T) || (this.za[b].Tg(), this.za[b].ll && this.za[b].ll.Tg(), this.za[b].T.H("complete", this.hr, this), this.za[b].T.H("renderComplete", this.hr,
                this), this.za = g.a.ro(this.za, b));
            for (var c = !1, d = !0, e = this.get("labelzIndex"), b = 0; b < a.length; b += 1) if (!a[b].H4) if (a[b].mi) -1 === g.a.indexOf(this.za, a[b].o) && this.za.push(a[b].o); else {
                var f = this.Pf(a[b]);
                f && (this.za.push(f), a[b].mi = !0, a[b].o = f);
                a[b].h("complete", this.hr, this, !0);
                a[b].h("renderComplete", this.hr, this)
            }
            for (b = 0; b < this.za.length; b += 1) f = this.za[b].T, f.iq && f.get("visible") && (c = !0, !1 === f.get("detectRetina") && (d = !1), e = f.get("textIndex") || e);
            this.Cc && (c || "3D" !== this.C.view.type ? this.Cc.iO = !1 : (c =
                g.a.find(a, function (a) {
                    if (z.o.pt && a instanceof z.o.pt && a.get("visible")) return !0
                }), this.Cc.iO = c = !!c));
            a = g.a.indexOf(this.za, this.Cc);
            c && this.C.get("showLabel") ? (-1 === a && this.za.push(this.Cc), this.Cc.ja = d && g.l.ja, this.Cc.eC(this.get("mapStyle") || "normal"), this.Cc.set("zIndex", e), this.Cc.set("visible", !0), this.C.YC = !0, this.C.get("isHotspot") ? this.Cc.Lta() : this.Cc.MP()) : (this.Cc && (this.Cc.set("visible", !1), this.C.YC = !1, this.Cc.MP()), this.C.YC = !1);
            this.C.isHotspotChanged();
            this.set("display", 0);
            this.YD()
        },
        isHotspotChanged: function () {
            this.layersChanged()
        }, controlsChanged: function () {
            var a = this.get("controls"), b, c;
            if (a.add && 0 < a.add.length) for (; 0 < a.add.length;) b = a.add.shift(), (c = b.eu || b.addTo) && c.call(b, this.C, this.Ta.controls); else if (a.remove && a.remove.length) for (; 0 < a.remove.length;) b = a.remove.shift(), (c = b.Cv || b.removeFrom) && c.call(b, this.C, this.Ta.controls)
        }, V0: function () {
            if (!this.dQ) {
                var a = this;
                this.$0 = !1;
                a.sd || (a.sd = new g.o.ad(new z.o.ad, a), a.sd.of = 36, a.sd.cg = 36, a.sd.set("zIndex", 120), a.za.push(a.sd),
                    a.sd.AC = !0);
                for (var b = a.get("overlays"), c = [], d = 0; d < a.kd.length; d += 1) -1 === g.a.indexOf(b, a.kd[d].Yb) && (a.kd[d].Yb instanceof z.w.Qe || a.kd[d].Yb instanceof z.w.Hn ? a.kd[d].Tg() : (a.sd && a.kd[d] instanceof g.w.rb ? (a.sd.Sg = g.a.ay(a.sd.Sg, a.kd[d].L), a.sd.q7([a.kd[d].L])) : a.Js && a.Js.q7([a.kd[d].L]), a.kd[d].L.ca ? (g.j.remove(a.kd[d].L.ca), a.kd[d].L.ca = null) : a.kd[d].L.Za && (g.j.remove(a.kd[d].L.Za.Wf), g.j.remove(a.kd[d].L.Za.$b), a.kd[d].L.Za = null), a.kd[d].wn && a.kd[d].wn.stop(), a.kd[d].Yb.mi = !1, a.kd[d].Yb.rl(), a.kd[d].Yb.w =
                    null, a.kd[d].Yb = null, a.kd[d].L.Una(), a.kd[d].L = null, a.kd[d].rl(), a.kd[d].Ie = null, a.kd[d].pi(), a.kd[d].map = null), c.push(a.kd[d]));
                for (d = 0; d < c.length; d += 1) a.kd = g.a.ro(a.kd, g.a.indexOf(a.kd, c[d]));
                var e = [], f = [];
                g.a.kwa(function (b) {
                    if (!b.mi && b.Qg) {
                        var c = b.w || a.Yla(b);
                        c && (a.kd.push(c), c instanceof g.w.Qe || c instanceof g.w.Hn ? c.Zy(a) : c instanceof g.w.rb ? e.push(c.L) : f.push(c.L), b.mi = !0)
                    }
                }, b);
                e.length && a.sd.Gx(e);
                f.length && (a.Js || (a.Js = new g.o.ad(new z.o.ad, a), a.Js.set("zIndex", 110), a.za.push(a.Js)), a.Js.Gx(f));
                a.set("display", 0)
            }
        }, overlaysChanged: function () {
            this.kd = this.kd || [];
            this.get("overlays") && 0 === this.get("overlays").length ? this.V0() : this.$0 || (g.a.Rc(this.V0, this), this.$0 = !0)
        }, contextmenusChanged: function () {
            var a = this.get("contextmenu");
            if (a) {
                var b = this;
                g.qb.load("overlay", function () {
                    b.Tx = new g.w.Hn(a, b);
                    b.set("display", 0)
                })
            }
        }, infosChanged: function () {
            var a = this.get("infos");
            if (a) {
                this.mm = this.mm || {};
                var b, c = this;
                g.qb.load("overlay", function () {
                    for (var d in a) a.hasOwnProperty(d) && (b = a[d], c.mm[d] = c.mm[d] ||
                        new g.w.Qe(b, c))
                })
            }
        }, Yla: function (a) {
            var b = null;
            if (a instanceof z.w.rb) b = new g.w.rb(a, this); else if (a instanceof z.w.Hn) b = new g.w.Hn(a, this); else if (a instanceof z.w.Qe) b = new g.w.Qe(a, this); else {
                var c = ["overlay"];
                "d" === this.get("overlayRender") ? (c.push("dvector"), g.l.Jo ? c.push("svg") : c.push("vml")) : c.push("cvector");
                if (!this.Iya && !g.qb.kD(c)) {
                    var d = this;
                    g.qb.Rg(c, function () {
                        this.Iya = !0;
                        d.overlaysChanged()
                    });
                    return
                }
                a instanceof z.w.zc ? b = new g.w.zc(a, this) : a instanceof z.w.Vz ? b = new g.w.Vz(a, this) : a instanceof
                z.w.Xb ? b = new g.w.Xb(a, this) : a instanceof z.w.$g ? b = new g.w.$g(a, this) : a instanceof z.w.nt ? b = new g.w.zc(a, this) : a instanceof z.w.tt && (b = new g.w.zc(a, this))
            }
            return b
        }, j3: function () {
            var a = this.ue;
            !this.vu || this.Ah && this.Ah.qp || (a = "function" === typeof this.vu ? this.vu(this.Uk.R.zoom) : this.vu);
            return a
        }, DBa: function () {
            function a() {
            }

            var b = new g.o.ad, c = [], d = new g.U(116.405467, 39.907761);
            new g.style.Cg.ai;
            for (var e = 0; 100 > e; e += 1) for (var f = 0; 100 > f; f += 1) {
                var h = new g.U(d.Q + 0.02 * f, d.P + 0.02 * e), h = new g.Zh({
                    name: "point" +
                        (100 * e + f), map: this, fa: new g.Ca.Bg(this.Ab(h))
                });
                c[100 * e + f] = h;
                h.h("hover", a, h)
            }
            b.Gx(c);
            this.za.push(b)
        }, fc: function () {
        }, BBa: function (a) {
            var b = new g.o.ad, c = [], c = (new g.y$({map: this})).rT(a);
            b.Gx(c);
            this.za.push(b);
            this.set("display", 0)
        }, Pf: function (a) {
            var b = this;
            a = a.Pf(this);
            if (!a) return null;
            if (a.length && "string" == typeof a[0]) g.qb.Rg(a, function () {
                b.layersChanged()
            }); else return a;
            return null
        }, wDa: function () {
            return this.Ta
        }, NFa: function () {
            this.set("display", 0)
        }, displayChanged: function (a) {
            this.M0 || this.pK(a)
        },
        pK: function (a) {
            if (a) if (g.a.ni(this.cE), g.l.Ql) {
                var b = this;
                setTimeout(function () {
                    b.mc()
                }, 0)
            } else this.mc(); else this.kw || (this.cE = g.a.Rc(this.mc), this.kw = !0)
        }, mc: function () {
            this.cE = null;
            if (!this.dQ) {
                this.q("render");
                this.kw = !1;
                var a = {};
                if (this.za && (a.size = this.C.get("size"), a.size.width && a.size.height)) {
                    for (var b = this.C.view.type, c = [], d = 0, e = this.za.length; d < e; d += 1) this.za[d].Ag && this.za[d].Ag !== b ? this.za[d].Ka = !0 : (c.push(this.za[d]), this.za[d].ll && c.push(this.za[d].ll));
                    c.sort(function (a, b) {
                        var c =
                            a.get("zIndex"), d = b.get("zIndex");
                        return c > d ? 1 : c === d ? a.zF > b.zF ? 1 : -1 : -1
                    });
                    a.za = c;
                    c = g.l.ja ? Math.min(window.devicePixelRatio || 1, 2) : 1;
                    a.Hla = 15E5 < a.size.width * a.size.height * c * c;
                    a.WI = !!this.C.get("rasterLayer");
                    a.ba = g.l.ba;
                    a.lang = this.get("lang");
                    a.R = this.C.QI();
                    a.Ag = b;
                    this.C.D = !0;
                    a.S = this.C.getResolution([0, 0]);
                    a.us = this.C.get("mapStyle");
                    a.bl = this.bl;
                    this.C.D = !1;
                    a.Fd = this.bh;
                    a.zCa = this.Rn;
                    a.Pe = this.Nk;
                    a.vg = this.Fg;
                    a.OK = this.Fg && g.l.ba;
                    a.GU = g.l.ba && this.Nk;
                    a.xE = g.l.ba && this.bh;
                    this.xE = a.xE;
                    b = this.get("targetLevel") ||
                        a.R.zoom;
                    a.Tq = a.R.zoom > b;
                    a.If = a.R.zoom > b ? "zoomOut" : a.R.zoom < b ? "zoomIn" : "stable";
                    a.TEa = !0;
                    a.s1 = this.s1;
                    for (var b = !1, f, c = !1, d = 0; d < this.za.length; d += 1) this.za[d].xi && this.za[d].T.get("visible") && a.R.zoom <= this.za[d].T.get("zooms")[1] && (a.HT = !0), this.za[d].he().Mc && (b = !0);
                    for (d = 0; d < this.za.length; d += 1) this.za[d].T.nP && a.HT && (!this.Nk && this.za[d].T.get("visible") && (f = this.za[d].T.nP(), f.dEa = 1, f.zoom = a.R.zoom), c = !0);
                    this.wb = [];
                    c && f && this.wb !== f && (this.wb = f);
                    a.wb = this.wb;
                    a.Mc = b;
                    a.scale = Math.pow(2, a.R.zoom -
                        a.R.De);
                    this.Uk = a;
                    this.jd = this.C.get("mask");
                    a.jd = this.jd;
                    a.yJ = this.yJ;
                    if (f = this.HI()) f.mc(a), this.bl = this.MQ = this.yJ = !1
                }
            }
        }, HI: function () {
            if (!this.J || this.J.type !== this.C.view.type || this.J.Dsa) if (this.J = null, "3D" == this.C.view.type) {
                var a = this;
                g.qb.load("Map3D", function () {
                    a.J || (a.J = new g.Da.iF(a), a.set("display"))
                })
            } else this.J = new g.M.canvas.Kb(this);
            return this.J
        }, upa: function () {
            var a = [], b = this.get("controls").Hd, c;
            for (c in b) b[c].uy && b[c].uy() && a.push(b[c].uy());
            return a
        }, destroyChanged: function () {
            delete g.te.Ey[this.C._amap_id];
            this.dQ = 1;
            this.CT(!0);
            this.V = {};
            this.Cc && (this.Cc.T.H("complete", this.hr, this), this.Cc.Tg(), this.za = g.a.ro(this.za, g.a.indexOf(this.za, this.Cc)));
            this.Ah && this.Ah.cf && this.Ah.cf.T && this.Ah.cf.T.setMap();
            this.Vja && clearTimeout(this.Vja);
            this.zja();
            this.zga();
            this.$N && this.$N();
            this.Fka();
            this.rl();
            this.C = this.C.map = null;
            this.K = this.K.dM = null;
            this.pi();
            this.ze && (this.ze.stop(stop1), this.ze = null);
            this.Hf && (this.Hf.stop(stop1), this.Hf = null);
            this.Bd && (this.Bd.stop(stop1), this.Bd = null);
            this.J && this.J.Sf && this.J.Sf();
            this.J = null
        }, Fka: function () {
            var a = this.K;
            this.sca();
            g.F.Hma(a);
            g.j.ZD(a);
            this.Fl = null;
            g.j.ab(a, "amap-container");
            this.Ta = null
        }, jogEnableChanged: function () {
            this.get("jogEnable") ? this.av = !0 : this.av = !1
        }, drawChanged: function () {
            var a = this, b, c, d = this.get("draw");
            if (d) {
                this.Zp || (this.Zp = []);
                b = 0;
                for (c = this.Zp.length; b < c; b += 1) this.Zp[b].ova();
                g.qb.load("interaction", function () {
                    var b = new g.Gza({type: d, o: a.Js}, a);
                    a.Zp.push(b);
                    a.loaded = !0
                })
            } else if (this.Zp) for (b = 0, c = this.Zp.length; b < c; b += 1) this.Zp[b].ova(), this.Zp[b].$Ba(),
                this.H("click", this.Zp[b].LDa, this)
        }, ce: function (a, b, c) {
            return this.C.view.ce(a, b, c)
        }, qg: function (a, b, c) {
            return this.C.view.qg(a, b, c)
        }, U3: function (a, b) {
            var c = this.get("size"), d = document.createElement("canvas");
            a = a || c.width;
            b = b || c.height;
            d.width = a;
            d.height = b;
            for (var e = -(c.width - a) / 2, c = -(c.height - b) / 2, f = d.getContext("2d"), h = this.Ta.o.childNodes, k = [], l = 0; l < h.length; l += 1) k.push(h[l]);
            k.sort(function (a, b) {
                return a.style.zIndex - b.style.zIndex
            });
            for (l = 0; l < k.length; l += 1) {
                var m = k[l];
                if (g.j.pn(m, "amap-layer") ||
                    g.j.pn(m, "amap-e") || g.j.pn(m, "amap-labels")) if ("CANVAS" === m.tagName) {
                    var h = c, n = e, p = parseFloat(m.style.width) || m.width,
                        q = parseFloat(m.style.height) || m.height, r = 1;
                    m.style.transform && (r = parseFloat(m.style.transform.split("(")[1]));
                    f.drawImage(m, n, h, p * r, q * r)
                } else if ("DIV" === m.tagName) for (var r = m.childNodes, s = parseFloat(m.style.top) || 0 + c, m = parseFloat(m.style.left) || 0 + e, u = 0; u < r.length; u += 1) {
                    var v = r[u];
                    if ("CANVAS" === v.tagName || "IMG" === v.tagName) h = parseFloat(v.style.top) || 0, n = parseFloat(v.style.left) || 0,
                        p = parseFloat(v.style.width) || v.width, q = parseFloat(v.style.height) || v.height, f.drawImage(v, n + m, h + s, p, q)
                }
            }
            return d.toDataURL()
        }
    });
    g.Kb.zb({
        ofa: function () {
            this.fB = !1;
            g.l.Ff && ("3D" === this.C.view.type ? this.Kba() : this.Iba());
            g.l.ba || this.Fba()
        }, zja: function () {
            g.l.Ff && ("3D" === this.C.view.type ? this.Fga() : this.Ega());
            g.l.ba || this.Aga()
        }, rotateEnableChanged: function () {
            this.awa = this.get("rotateEnable");
            g.l.Ff && this.u1 && "3D" !== this.C.view.type && (this.awa ? this.u1() : this.qta())
        }, zoomEnableChanged: function () {
            this.get("zoomEnable") ? (g.l.Ff && this.qP && "3D" !== this.C.view.type && this.qP(), g.l.ba || this.Hba()) : (g.l.Ff && this.KS && this.KS(), g.l.ba ||
            this.Dga())
        }, mousewheelChanged: function () {
        }, yS: function (a) {
            a && (this.fB = a.$t)
        }, aw: function () {
            this.fB = !1
        }, Ei: function (a, b, c, d) {
            var e, f = {};
            a || (a = window.event);
            var h = g.F.fm(a, this.Ta.Zc);
            g.l.Ff && ("touchend" !== a.type ? this.V.Ufa = h : h = this.V.Ufa);
            f.tb = h;
            f.Oa = this.qg(h);
            f.Oa && (f.Oa = f.Oa.toFixed(3));
            f.Yf = this.Ld(f.Oa);
            c || (c = this.fB ? this.fB ? [this.fB] : null : this.cea(f.Oa, d)) && 0 < c.length && c[0].pr && (e = c[0].pr, f.$t = c[0]);
            e || "info" === a.vf || (e = this);
            f.cd = e;
            f.GAa = a.altKey;
            f.ctrlKey = a.ctrlKey;
            f.button = void 0 === a.button ?
                0 : a.button;
            b || g.F.preventDefault(a);
            return f
        }, xN: function (a) {
            return a && a !== this && a !== document
        }, rO: function () {
            var a = this.V;
            a.Xf && (a.Vj.tb.x === a.Xf.x && a.Vj.tb.y === a.Xf.y ? a.Fg = !1 : (a.Fg = !0, a.np || (a.Qp.q("dragstart", a.Pp), a.np = !0), a.Qp.q("dragging", a.Vj), a.Xf = a.Vj.tb))
        }, Swa: function (a) {
            for (var b = [], c = 0; c < a.length; c += 1) a[c] && (b = b.concat(a[c]));
            return b
        }, wv: function (a, b, c) {
            return a && b && (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) < (c || 10)
        }, cea: function (a, b) {
            var c = this.HI();
            if (!c) return null;
            var d, e = this;
            this.za.sort(function (a,
                                   b) {
                return a.get("zIndex") > b.get("zIndex") ? -1 : 1
            });
            c.Nu(a, this.za, function (a) {
                d = a;
                d = e.Swa(d)
            }, function () {
                d = []
            }, b);
            return d
        }
    });
    g.Kb.zb({
        vfa: function () {
            this.Rn = {};
            this.h("moveend", this.o6, this);
            g.l.Ql && (g.l.VK || g.l.CH) && this.h("zoomend", this.jV, this);
            this.h("movestart", this.p6, this);
            this.h("zoomstart", this.v6, this);
            this.h("zoomend", this.u6, this);
            this.iM();
            this.At = 0;
            this.aG = {};
            "undefined" === typeof window.requestAnimationFrame && (this.At = 2)
        }, v6: function () {
            2 !== this.At && 12 === this.get("zoom") && (this.At = 1, g.a.MC.start(this.aG));
            this.Nk = !0
        }, u6: function () {
            1 === this.At && 13 !== this.get("zoom") && (this.At = 0, g.a.MC.cancel(this.aG));
            this.Nk =
                !1;
            this.set("display")
        }, p0: function (a, b) {
            this.Rn.left = 0 < a;
            this.Rn.right = 0 > a;
            this.Rn.KE = 0 < b;
            this.Rn.hQ = 0 > b
        }, Wt: function () {
            this.Rn.left = !1;
            this.Rn.right = !1;
            this.Rn.KE = !1;
            this.Rn.hQ = !1
        }, zga: function () {
            this.H("moveend", this.o6, this);
            g.l.Ql && (g.l.VK || g.l.CH) && this.H("zoomend", this.jV, this);
            this.H("movestart", this.p6, this);
            this.H("zoomstart", this.v6, this);
            this.H("zoomend", this.u6, this);
            this.Bga()
        }, o6: function (a) {
            this.Fg = !1;
            this.Wt();
            this.D7();
            !a.b5 && this.C.get("limitBounds", null, !0) ? (a = this.pma()) && !a.cb(this.get("center")) ?
                this.AK(this.get("zoom"), a, !1, !0) : this.oa("moveend") : this.oa("moveend");
            this.set("display")
        }, p6: function () {
            this.Fg = !0;
            this.Wt()
        }, dragEnableChanged: function () {
            (this.BC = this.get("dragEnable")) ? this.hM() : this.ZN()
        }, oa: function (a, b) {
            if (this.C.ke(a)) {
                var c;
                b && (c = b.f6 ? {type: a, newsize: b.f6, oldsize: b.rta} : {
                    type: a,
                    pixel: b.tb,
                    target: this.C,
                    lnglat: b.Yf
                });
                this.C.q(a, c)
            }
        }, iM: function () {
            this.h("click", this.UZ);
            this.h("dblclick", this.YZ);
            g.l.Ff && this.WW();
            g.l.ba || this.Gba()
        }, Bga: function () {
            this.H("click", this.UZ);
            this.H("dblclick", this.YZ);
            g.l.Ff && this.JZ();
            g.l.ba || this.Cga()
        }, JG: function (a, b) {
            var c = this.get("targetLevel") || this.get("zoom"), c = 0 < b ? Math.floor(c) + 1 : Math.ceil(c) - 1,
                c = Math.min(Math.max(c, this.get("zooms")[0]), this.get("zooms")[1]);
            c === this.get("zoom") || this.Hf && this.Hf.Gv && c === this.Hf.end || this.Sz(c, !1, a)
        }, UZ: function (a) {
            this.oa("click", a)
        }, YZ: function (a) {
            this.get("doubleClickZoom") && this.get("zoomEnable") && this.JG(a.Oa, 1);
            this.oa("dblclick", a)
        }, nBa: function (a) {
            this.JG(a.GGa, a.L8);
            this.oa("touchend",
                a)
        }, hM: function () {
            this.BC && ("3D" === this.C.view.type ? (this.h("dragstart", this.d_), this.h("dragging", this.$Z), this.h("dragend", this.b_)) : (this.h("dragstart", this.c_), this.h("dragging", this.ZZ), this.h("dragend", this.a_)))
        }, ZN: function () {
            this.BC || ("3D" === this.C.view.type ? (this.H("dragstart", this.d_), this.H("dragging", this.$Z), this.H("dragend", this.b_)) : (this.H("dragstart", this.c_), this.H("dragging", this.ZZ), this.H("dragend", this.a_)))
        }, c_: function (a) {
            this.yS(a);
            this.Wt();
            this.bh = !0;
            this.V.gy = a.tb.x;
            this.V.CC =
                a.tb.y;
            this.ze && (this.ze.stop(), this.Zr(!0));
            this.oa("dragstart");
            this.oa("movestart");
            this.q("movestart", a);
            this.Ywa()
        }, ZZ: function () {
            var a = this.V, b = a.Vj.tb.x - a.gy, c = a.Vj.tb.y - a.CC;
            if (c || b) {
                this.V.Fg = !0;
                this.p0(b, c);
                a.gy = a.Vj.tb.x;
                a.CC = a.Vj.tb.y;
                var a = b, d = c, e = this.rotation;
                e && (e *= Math.PI / 180, a = b * Math.cos(e) + Math.sin(e) * c, d = -Math.sin(e) * b + Math.cos(e) * c);
                a = this.get("centerCoords").$a((new g.G(a, d)).Kd(this.S));
                (d = this.U1(a)) && (c = Math.round(this.ce(d).$a(this.ce(a)).y));
                this.No(this.Ta.Fr, b, c);
                a.x =
                    (a.x + g.a.Ea) % g.a.Ea;
                this.set("centerCoords", a, !0);
                this.set("center", this.Ld(a), !0);
                this.av && (this.dh ? (a = new Date, this.Ht = 100 < a - this.dh ? new g.G(0, 0) : new g.G(b, c), this.dh = a) : this.dh = new Date);
                this.oa("dragging");
                this.oa("mapmove")
            } else this.V.Fg = !1, this.Ht = null, this.Wt()
        }, No: function (a, b, c) {
            if (a && !(1 > Math.abs(b) && 1 > Math.abs(c))) {
                var d = parseFloat(a.style.top) || 0, e = parseFloat(a.style.left) || 0, f = "";
                this.rotation && (f = g.j.Ys[g.j.jg] + ":rotate(" + this.rotation + "deg);overflow:visible;");
                a.style.cssText = "position:absolute;top:" +
                    (d + c) + "px;left:" + (e + b) + "px;" + f
            }
        }, U1: function (a) {
            var b = this.C.view.xW(), c = this.lU.height * this.S / 2;
            return a.y < b.dc + c ? (a.y = b.dc + c, a) : a.y > b.qc - c ? (a.y = b.qc - c, a) : null
        }, a_: function () {
            this.aw();
            100 < new Date - this.dh && (this.Ht = null);
            this.V.Xf = null;
            this.bh = !1;
            this.Wt();
            this.oa("dragend");
            if (this.av && this.Ht) if (this.V.Fg) {
                var a = this.Ht, b = new g.G(0, 0);
                this.ze = new g.Dj(a, b, function (a, b, e) {
                    return 600 <= e ? b : a.Kd(1 - Math.pow(e / 600, 2)).floor()
                }, 1);
                this.ze.lq = function (a) {
                    if (2 > Math.abs(a.x) && 2 > Math.abs(a.y)) this.ze.stop(),
                        this.q("moveend"), this.Zr(), this.Ht = this.dh = null; else {
                        var b = a.x, e = a.y, f = this.rotation;
                        f && (f *= Math.PI / 180, b = a.x * Math.cos(f) + Math.sin(f) * a.y, e = -Math.sin(f) * a.x + Math.cos(f) * a.y);
                        b = this.get("centerCoords").$a((new g.G(b, e)).Kd(this.S));
                        e = this.U1(b);
                        f = a.y;
                        e && (f = Math.round(this.ce(e).$a(this.ce(b)).y));
                        this.No(this.Ta.Fr, a.x, f);
                        b.x = (b.x + g.a.Ea) % g.a.Ea;
                        this.set("centerCoords", b, !0);
                        this.set("center", this.Ld(b), !0);
                        this.oa("mapmove")
                    }
                };
                this.ze.Cn(this)
            } else this.q("moveend"), this.Zr(!0), this.Ht = this.dh = null;
            else this.q("moveend"), this.Zr(), this.Ht = this.dh = null
        }, Ywa: function () {
            if (!this.V.refresh) {
                var a = this, b = null;
                this.V.refresh = setInterval(function () {
                    b !== a.V.Xf && (a.set("display", 0), b = a.V.Xf)
                }, g.l.ba ? 400 : 100)
            }
        }, jV: function () {
            if (g.l.Ql && (g.l.VK || g.l.CH)) {
                for (var a = this.Ta.o.childNodes, b = 0; b < a.length; b += 1) {
                    var c = a[b];
                    c instanceof HTMLCanvasElement && (c.width = 0);
                    "amap-e" === c.className && (c.style.height = "0")
                }
                for (b = 0; b < this.za.length; b += 1) c = this.za[b], "undefined" !== typeof AMap.IndoorMap && c instanceof AMap.IndoorMap &&
                (c.bu && (c.bu.width = 0), c.Ax && (c.Ax.width = 0))
            }
        }, Zr: function (a) {
            this.V.refresh && (clearInterval(this.V.refresh), this.V.refresh = null);
            a || (this.jV(), this.set("display", 0))
        }, D7: function (a) {
            this.set("refresh", a)
        }
    });
    g.Kb.zb({
        setZoomSlow: function (a) {
            this.AK(a, null, !this.get("animateEnable"))
        }, setPanTo: function (a) {
            this.AK(null, a, !this.get("animateEnable"))
        }, zoomAndCenterChanged: function (a) {
            var b = a[0];
            b < this.get("zooms")[0] && (b = this.get("zooms")[0]);
            b > this.get("zooms")[1] && (b = this.get("zooms")[1]);
            this.AK(b, a[1], a[2] || !this.get("animateEnable"))
        }, zoomChanged: function () {
            this.S = Math.pow(2, 20 - this.get("zoom"));
            this.q("closeOverlays");
            this.set("display")
        }, rotationChanged: function (a) {
            this.rotation = this.get("rotation");
            this.C.q("rotate", {rotation: this.rotation || 0});
            !0 !== a && this.set("display", 0)
        }, pitchChanged: function () {
            this.pitch = this.get("pitch");
            this.C.q("pitch", {pitch: this.pitch || 0});
            this.set("display", 0)
        }, centerCoordsChanged: function () {
            this.q("closeOverlays");
            this.LAa ? this.pK(!0) : this.pK(!1)
        }
    });
    g.oW = g.aa.extend({
        ka: [g.va, g.Re], r: function (a, b) {
            this.type = "2D";
            this.Ze(b, !0);
            a && this.Jla(a)
        }, Jla: function (a) {
            this.map = a;
            this.Se(["size", "refresh", "maxPitch"], a);
            this.centerChanged();
            a.Se(["zoom", "center", "centerCoords", "rotation", "pitch"], this)
        }, xW: function () {
            this.YL || this.Zma();
            return this.YL
        }, Zma: function () {
            var a;
            if (this.get("center") instanceof g.U) {
                a = new g.re(-180, -85, 180, 85);
                var b = this.map.Ab(a.Yj());
                a = this.map.Ab(a.Co());
                this.YL = {Ec: b.x, dc: b.y, Dc: a.x, qc: a.y}
            } else a = this.map.get("limitBounds",
                null, !0), this.YL = {Ec: a[0], dc: a[1], Dc: a[2], qc: a[3]}
        }, QI: function () {
            var a = this.map, b = this.get("zoom");
            return {
                zoom: b,
                kh: this.get("center"),
                Ha: this.dm(),
                jb: this.get("centerCoords"),
                rotation: parseInt(this.get("rotation")),
                Bf: a.get("crs"),
                S: Math.pow(2, 20 - b),
                De: Math.round(b),
                wg: Math.pow(2, 20 - Math.round(this.get("zoom")))
            }
        }, centerChanged: function () {
            this.set("centerCoords", this.map.Ab(this.get("center")).toFixed(3), !0)
        }, centerCoordsChanged: function () {
            var a = this.map;
            a.D = !0;
            var b = this.xW(), c = this.get("centerCoords"),
                d = a.getSize();
            a.D = !1;
            var e = this.get("zoom", null, !0), a = this.get("center", null, !0),
                d = d.height * Math.pow(2, 20 - e) / 2;
            a instanceof g.U ? c.x = (c.x + 268435456) % 268435456 : 0 > c.x ? c.x = 0 : c.x > b.Dc && (c.x = b.Dc);
            c.y < b.dc + d ? c.y = b.dc + d : c.y > b.qc - d && (c.y = b.qc - d);
            this.set("center", this.map.Ld(c), !0)
        }
    });
    g.uF = g.oW.extend({
        dm: function () {
            var a = this.get("size"), b = this.get("centerCoords"), c = parseInt(this.get("rotation")) % 360,
                d = this.get("zoom", null, !0), e = Math.pow(2, 20 - d), c = Math.PI * c / 180,
                a = new g.G((Math.abs(a.width * Math.cos(c)) + Math.abs(a.height * Math.sin(c))) / 2, (Math.abs(a.width * Math.sin(c)) + Math.abs(a.height * Math.cos(c))) / 2),
                e = new g.Jf(b.$a(a.Kd(e)), b.add(a.Kd(e))), c = this.map.get("targetLevel");
            if (c > d - 1) {
                var f = Math.pow(2, 20 - c);
                e.T9 = new g.Jf(b.$a(a.Kd(f)), b.add(a.Kd(f)))
            }
            e.J8 = c || d;
            e.xc = a;
            return e
        }, mpa: function (a) {
            var b =
                    this.get("size"), c = this.get("centerCoords"), d = parseInt(this.get("rotation")) % 360,
                d = Math.PI * d / 180,
                b = new g.G((Math.abs(b.width * Math.cos(d)) + Math.abs(b.height * Math.sin(d))) / 2, (Math.abs(b.width * Math.sin(d)) + Math.abs(b.height * Math.cos(d))) / 2);
            a = Math.pow(2, 20 - a);
            return new g.Jf(c.$a(b.Kd(a)), c.add(b.Kd(a)))
        }, od: function () {
            var a = this.dm(), b = a.Jd.x, c = a.Zb.y, a = new g.G(a.Zb.x, a.Jd.y), b = new g.G(b, c);
            return new g.re(this.map.Ld(a), this.map.Ld(b))
        }, zoomChanged: function () {
        }, ce: function (a, b) {
            this.get("size");
            var c =
                a.lb(), d = this.get("centerCoords"), e = c.$a(d);
            e.x < -g.a.Ea / 2 ? e.x += g.a.Ea : e.x > g.a.Ea / 2 && (e.x -= g.a.Ea);
            var c = this.get("size").uE().ed(2), f = this.get("rotation") * Math.PI / 180,
                d = e.x * Math.cos(f) - Math.sin(f) * e.y, e = Math.sin(f) * e.x + Math.cos(f) * e.y;
            return c.add((new g.G(d, e)).Kd(Math.pow(2, (b || this.get("zoom")) - 20)))
        }, qg: function (a, b) {
            var c = this.get("size").uE().ed(2), d = a.$a(c), e = this.get("rotation") * Math.PI / 180,
                c = d.x * Math.cos(e) + Math.sin(e) * d.y, d = -Math.sin(e) * d.x + Math.cos(e) * d.y,
                c = this.get("centerCoords").add((new g.G(c,
                    d)).Kd(Math.pow(2, 20 - (b || this.get("zoom")))));
            c.x = (c.x + 268435456) % 268435456;
            return c
        }
    });
    g.SL = g.oW.extend({
        r: function (a, b) {
            this.bg = new g.Hc;
            this.$c = new g.Hc([1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1]);
            arguments.callee.la.apply(this, arguments);
            this.scale = 1;
            this.type = "3D";
            this.Mz = null;
            this.Z6 = "";
            this.R = ["", 0, 0, "", 0];
            this.Mz = {}
        }, refreshChanged: function () {
            this.Mq()
        }, zoomChanged: function (a) {
            this.Mq();
            this.R[4] = a
        }, centerChanged: function (a) {
            arguments.callee.la.apply(this, arguments);
            this.Mq()
        }, centerCoordsChanged: function (a) {
            arguments.callee.la.apply(this, arguments);
            this.Mq();
            this.R[0] = a.toString()
        },
        rotationChanged: function (a) {
            this.Mq();
            this.R[2] = a
        }, pitchChanged: function (a) {
            this.Ie.pitch = Math.min(this.get("maxPitch"), Math.max(a, 0));
            this.Mq();
            this.R[1] = a
        }, Mq: function () {
            if (!this.zya() && (this.YU(), this.Vna(), this.map)) {
                var a = this, b = function () {
                    a.map.camera = a.n3();
                    a.map.q("camerachange", {map: a.map, camera: a.map.camera})
                };
                a.map.Ka ? b() : this.map.h("complete", b, this)
            }
        }, n3: function () {
            return {
                height: this.en,
                fov: this.cpa,
                aspect: this.XB,
                near: this.Wy,
                far: this.pI,
                position: this.dma,
                rotation: this.Ie.rotation,
                pitch: this.Ie.pitch
            }
        },
        Vna: function () {
            this.Vfa = g.a.zf()
        }, Io: function () {
            var a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 300;
            return g.a.zf() - this.Vfa > a
        }, YU: function () {
            var a = this.get("centerCoords"), b = this.get("pitch"), c = this.get("rotation"),
                d = (new g.Hc).f8(-a.x + g.a.ac.x, -a.y + g.a.ac.y, 0);
            this.dma = {x: a.x - g.a.ac.x, y: a.y - g.a.ac.y};
            a = (new g.Hc).qz(180 - b, 1, 0, 0);
            this.Gua = (new g.Hc).set(a);
            c = (new g.Hc).qz(c, 0, 0, 1);
            this.Os = (new g.Hc).set(c);
            this.bpa = d.Og();
            this.$c = (new g.Hc).f8(0, 0, -this.en).multiply(a.multiply(c.multiply(d))).toFixed(8);
            this.$c.We = this.$c.Og()
        }, zya: function (a) {
            a = a || this.get("zoom");
            var b = this.get("size"), c = b.width, b = b.height;
            if (!c || !b) return !0;
            this.XB = c /= b;
            b = b / 2 * Math.pow(2, 20 - a);
            a = g.a.hc((56 - a) * Math.PI / 180, 2);
            var d = g.a.hc(b / Math.tan(a / 2), 0);
            2400 > d && (d = 2400, a = 2 * Math.atan(b / d));
            this.cpa = a;
            this.en = d;
            this.Wy = this.en / 10;
            this.pI = 50 * this.en;
            this.Fna = (this.en - this.Wy) / (this.pI - this.Wy);
            this.bg.c8(a, c, this.Wy, this.pI);
            this.bg.We = this.bg.Og();
            a = this.bg;
            var c = new g.FV, b = c.OD, e = this.bg.elements, d = e[0], f = e[1], h = e[2], k = e[3], l =
                    e[4], m = e[5], n = e[6], p = e[7], q = e[8], r = e[9], s = e[10], u = e[11], v = e[12], w = e[13],
                t = e[14], e = e[15];
            sc(b[0], k - d, p - l, u - q, e - v).normalize();
            sc(b[1], k + d, p + l, u + q, e + v).normalize();
            sc(b[2], k + f, p + m, u + r, e + w).normalize();
            sc(b[3], k - f, p - m, u - r, e - w).normalize();
            sc(b[4], k - h, p - n, u - s, e - t).normalize();
            sc(b[5], k + h, p + n, u + s, e + t).normalize();
            a.QQ = c
        }, QI: function () {
            var a = this.map;
            a.map.Lv && (this.Mq(), this.R[3] = a.get("size").toString());
            var b = this.R.toString();
            if (b !== this.Z6) {
                var c = this.get("zoom"), d = this.Mz;
                d.zoom = c;
                d.XB = this.XB;
                d.top =
                    this.top;
                d.Ha = this.dm();
                d.jb = this.get("centerCoords");
                d.rotation = a.get("rotateEnable") && parseInt(this.get("rotation")) || 0;
                d.pitch = this.get("pitch") || 0;
                d.xHa = this.get("yaw");
                d.Bf = a.get("crs");
                d.S = Math.pow(2, 20 - c);
                d.De = Math.round(c);
                d.x6 = Math.floor(c);
                d.wg = Math.pow(2, 20 - d.De);
                d.Tta = Math.pow(2, 20 - d.x6);
                d.bg = this.bg;
                d.$c = this.$c;
                this.Z6 = d.key = b
            }
            this.Mz.kh = this.get("center");
            this.Mz.Kq = g.a.zf();
            this.Mz.Io = this.Io();
            return this.Mz
        }, dm: function () {
            var a = this.get("size"), b = a.width, a = a.height;
            if (!b || !a) return null;
            var c, d;
            d = 0;
            var e = new g.G(0, d);
            c = this.qg(e, !0);
            if (55 < this.Ie.pitch || !c) for (; !c;) d += a / 40, e.y = d, c = this.qg(e, !0);
            this.top = d / a;
            e.x = b;
            d = this.qg(e, !0);
            var f = 0, h = this.Ie.zoom;
            50 <= this.Ie.pitch && 18 <= h && (f = 0);
            e.y = a + f;
            f = this.qg(e, !0);
            e.x = 0;
            h = this.qg(e, !0);
            c = [c.pl(), d.pl(), f.pl(), h.pl(), c.pl()];
            c = new g.k$(c);
            e.x = b / 2;
            e.y = a + 256;
            c.BP = this.qg(e, !0);
            return c
        }, od: function () {
            var a = this.dm();
            if (a) {
                for (var b = [], c = 0; c < a.path.length; c += 1) {
                    var d = this.map.Ld(new g.G(a.path[c][0], a.path[c][1]));
                    b.push(d)
                }
                return new g.dp(b)
            }
        },
        ce: function (a, b, c) {
            a.z = c || 0;
            a = this.X5([a]);
            a = a[0];
            return new g.G(a.x, a.y)
        }, r3: function (a) {
            var b = this.get("size");
            a = new g.yl([a.x / b.width * 2 - 1, 1 - a.y / b.height * 2, -1, 1]);
            a.multiply(this.Wy);
            return this.bg.We.uh(a)
        }, qg: function (a, b, c) {
            var d;
            this.map ? (this.map.D = !0, d = this.map.getSize(!0), this.map.D = !1) : d = this.get("size");
            var e = a.x / d.width * 2 - 1;
            d = 1 - a.y / d.height * 2;
            a = new g.yl([e, d, -1, 1]);
            a.multiply(this.Wy);
            if (!this.bg.We) return null;
            a = this.bg.We.uh(a);
            e = new g.yl([e, d, 1, 1]);
            e.multiply(this.pI);
            d = this.bg.We.uh(e);
            var f = this.$c.We, e = f.uh(a).elements;
            a = f.uh(d).elements;
            c = (e[2] - (-c || 0)) / (e[2] - a[2]);
            if (0 > a[2] || 0 > c || b && c > 2.5 * this.Fna) return null;
            b = e[0] - c * (e[0] - a[0]);
            c = e[1] - c * (e[1] - a[1]);
            return isNaN(b) || isNaN(c) ? null : (new g.G(b, c)).add(g.a.ac)
        }, X5: function (a) {
            for (var b = this.get("centerCoords"), c = g.a.ac.x, d = g.a.ac.y, e = this.get("size"), f = g.a.Ea, h = b.x + f / 2, b = b.x - f / 2, k = [], l = new g.yl([0, 0, 0, 1]), m = l.elements, n = new g.G(0, 0), p = g.Hc.multiply(this.bg, this.$c), q = 0, r = a.length; q < r; q++) if (a[q]) {
                a[q].concat ? (n.x = a[q][0], n.y = a[q][1],
                    n.z = -a[q][2] || 0) : (n.x = a[q].x, n.y = a[q].y, n.z = -a[q].z || 0);
                h < n.x ? n.x -= f : b > n.x && (n.x += f);
                m[0] = n.x - c;
                m[1] = n.y - d;
                m[2] = n.z;
                var s = p.uh(l);
                s.multiply(1 / s.elements[3]);
                k[q] = {x: (s.elements[0] + 1) / 2 * e.width, y: (-s.elements[1] + 1) / 2 * e.height, z: s.elements[2]}
            }
            return k
        }, bza: function (a) {
            var b = this.get("size");
            a = this.bg.uh(this.$c.uh((new g.yl).copy(a)));
            a.multiply(1 / a.elements[3]);
            b = new g.G((a.elements[0] + 1) / 2 * b.width, (-a.elements[1] + 1) / 2 * b.height);
            b.z = a.elements[2];
            return b
        }
    });
    g.a.ac = new g.G(215440491, 106744817);
    g.Kb.zb({
        P1: function (a, b, c) {
            var d = this;
            d.PE ? (clearTimeout(d.PE), d.PE = null) : (d.oa("zoomstart", {zoom: a}), d.q("zoomstart"));
            d.PE = setTimeout(function () {
                d.PE = null;
                d.oa("zoomend", {zoom: a});
                d.oa("zoomchange", {zoom: a});
                d.q("zoomend")
            }, 150);
            a = g.a.hc(a, 2);
            d.Sz(a, !0, b, c)
        }, Sz: function (a, b, c, d) {
            var e = this.get("zoom");
            if (e !== a) {
                var f = this.get("zooms");
                "3D" !== this.C.view.type && (g.l.ba || g.l.ye) && (b = !0);
                a = a || e;
                a = Math.min(Math.max(a, f[0]), f[1]);
                var h = a !== e, k = !!c;
                this.ze && (this.ze.stop(), this.ze = null);
                c = c || this.get("centerCoords");
                var l = this.ce(c);
                c = function (c) {
                    b || (c = g.a.hc(c, 2));
                    var d = this.qg(l);
                    this.set("zoom", c);
                    var e = this.qg(l), d = e && e ? e.$a(d) : new g.G(0, 0);
                    this.set("centerCoords", this.get("centerCoords").$a(d).toFixed(3));
                    d.x && d.y && this.oa("mapmove");
                    c === a && a << 0 === a && (this.set("targetLevel", null), h && !this.PE && (this.oa("zoomchange"), this.oa("zoomend")), this.q("zoomend"), k && this.q("moveend"), this.Hf = null)
                };
                var m;
                this.Bd && this.Bd.Gv && (this.Bd.stop(), this.Bd.IR && (d = !0), this.Bd.VC && (m = !0), this.Bd = null, this.set("targetLevel",
                    null));
                this.Hf && this.Hf.Gv && (this.Hf.stop(), d = !0, this.Hf.VC && (m = !0), this.Hf = null, this.set("targetLevel", null));
                h && !d && this.oa("zoomstart");
                k && !m && this.oa("movestart");
                this.q("zoomstart");
                b ? c.call(this, a) : (this.Hf = new g.Dj(e, a, null, 0.04), this.Hf.IR = h, this.Hf.VC = k, this.Hf.transition = function (a, b, c) {
                    return c >= g.A.wH ? b : (b - a) * (1 - Math.pow(1 - c / g.A.wH, 4)) + a
                }, this.Hf.lq = c, this.Hf.Cn(this, !0), this.set("targetLevel", a))
            }
        }, AK: function (a, b, c, d) {
            var e = null;
            a || (a = this.Bd ? this.Bd.ixa : this.get("targetLevel") || this.get("zoom"));
            var e = b ? this.Ab(b).toFixed(3) : this.Bd ? this.Bd.I8 : this.get("centerCoords"),
                f = a !== this.get("zoom"), h = !e.cb(this.get("centerCoords")), k = b = !1;
            this.Hf && this.Hf.Gv && (this.Hf.stop(), b = !0, this.Hf.VC && (k = !0), this.Hf = null, this.set("targetLevel", null));
            this.Bd && this.Bd.Gv && (this.Bd.stop(), this.Bd.IR && (b = !0), this.Bd.VC && (k = !0), this.Bd = null, this.set("targetLevel", null));
            this.ze && (this.ze.stop(), this.ze = null);
            if (f || h) {
                if (!this.C.view.dm().contains(e) || f && "3D" !== this.C.view.type && (g.l.ba || g.l.ye)) c = !0;
                if (c) f && (b ||
                (this.q("zoomstart"), this.oa("zoomstart")), this.set("zoom", a), this.oa("zoomchange"), this.oa("zoomend"), this.q("zoomend")), h && (k || d || (this.oa("movestart"), this.q("movestart")), this.set("centerCoords", e), this.oa("mapmove"), this.q("moveend", {b5: d})), this.set("targetLevel", null); else {
                    this.set("targetLevel", a);
                    var l = a - this.get("zoom"), m = e.$a(this.get("centerCoords")).toFixed(3);
                    this.Bd = new g.Dj(1, 0, null, 0.001);
                    this.Bd.IR = f;
                    this.Bd.VC = h;
                    this.Bd.I8 = e;
                    this.Bd.ixa = a;
                    this.Bd.transition = function (a, b, c) {
                        return Math.pow(1 -
                            Math.min(g.A.wH, c) / g.A.wH, 2)
                    };
                    this.Bd.lq = function (b) {
                        0.02 > b ? (this.Bd && (this.Bd.stop(), this.Bd = null), f && (this.set("zoom", a), this.oa("zoomchange"), this.oa("zoomend"), f = !1, this.q("zoomend")), h && (this.set("centerCoords", e), this.q("mapmove"), this.q("moveend", {b5: d})), this.set("targetLevel", null)) : (f && this.set("zoom", a - l * b), h && (b = e.$a(m.Kd(b)).toFixed(3), this.set("centerCoords", b), this.oa("mapmove")));
                        this.set("display", 1)
                    };
                    this.Bd.Cn(this);
                    f && !b && (this.q("zoomstart"), this.oa("zoomstart"));
                    !h || k || d || (this.q("movestart"),
                        this.oa("movestart"))
                }
            }
        }
    });
    g.o = {};
    g.o.Tb = g.aa.extend({
        ka: [g.va, g.Re], r: function (a, b) {
            this.T = a;
            this.hb = [3, 18];
            this.zF = g.a.ub(this);
            a && this.Se(["opacity", "visible", "zIndex", "zooms"], a);
            a.Ag = b.C.view.type;
            this.e = b;
            this.W("display", b)
        }, Tg: function () {
            this.xi && this.MP();
            if (g.Ba && g.Ba.Pq && g.Ba.Pq.length) {
                var a = g.a.indexOf(g.Ba.Pq, this);
                -1 !== a && (g.Ba.Pq = g.a.ro(g.Ba.Pq, a))
            }
            if (a = this.Lb) {
                if (a.length) for (var b = 0; b < a.length; b += 1) a[b].parentNode && a[b].parentNode.removeChild(a[b]); else a.parentNode && a.parentNode.removeChild(a);
                this.Lb = null
            }
            this.T.Tg && this.T.Tg();
            this.T.mi = !1;
            this.T.o = null;
            this.rl();
            var c;
            this.M && (this.M.Uj(), this.M = null, c = "-" + this.ec);
            this.eg && (this.eg.Uj(), this.eg = null, c = "-" + this.ec);
            if (c) for (var d in g.Ba.zj) g.a.HC(d, c) && delete g.Ba.zj[d]
        }, oa: function (a, b) {
            this.T.q(a, b)
        }, visibleChanged: function () {
            this.set("display", 0)
        }, zIndexChanged: function () {
            this.set("display", 0)
        }, cU: function (a) {
            g.j.zq(a, this.opacity)
        }, opacityChanged: function () {
            var a = this.get("opacity");
            this.opacity = Math.min(Math.max(0, a), 1);
            if (a = this.Lb) if (a.length) for (var b = 0; b < a.length; b +=
                1) this.cU(a[b]); else this.cU(a);
            this.e && this.e.C && "3D" == this.e.C.view.type && this.set("display", 0)
        }, zo: function () {
            return this.e.jd && !this.T.get("rejectMapMask")
        }, EI: function () {
            var a = this.get("bounds");
            if (a) {
                if (a instanceof g.re) {
                    var b = a.Yj(), a = a.Co(), c = this.e.Ab(new g.U(180, 0)).x, d = this.e.Ab(b), e = this.e.Ab(a),
                        f = this.e.get("center");
                    b.Q > a.Q && (0 < f.Q ? e.x += c : d.x -= c);
                    this.I = [d.x, d.y, e.x, e.y]
                } else a instanceof g.Jf ? this.I = [a.Zb.x, a.Zb.y, a.Jd.x, a.Jd.y] : a instanceof g.vF && "3D" === this.T.Ag && (b = a.path[1], d =
                    this.e.Ab(a.path[0]), e = this.e.Ab(b), this.I = [d.x, d.y, e.x, e.y, a.S7, a.height]);
                return this.I
            }
            return null
        }
    });
    var Nc = function () {
        function a(a) {
            this.yF[g.a.ub(a)] = a;
            return this
        }

        function b(a) {
            this.yF[g.a.ub(a)] = null;
            return this
        }

        return function () {
            function c() {
                var a = c.yF, b, f = [], h;
                for (h in a) a.hasOwnProperty(h) && f.push(a[h]);
                for (a = f.length - 1; 0 <= a; a -= 1) h = f[a].apply(this, arguments), void 0 !== h && (b = h);
                return b
            }

            c.yF = {};
            c.f1 = a;
            c.LFa = b;
            return c
        }
    }();
    g.ig = g.aa.extend({
        ka: [g.va], r: function (a, b) {
            this.rp = a | 0;
            this.CF = !!b;
            this.count = 0;
            this.OJ = Nc();
            this.clear();
            this.eB = []
        }, vi: function () {
            return !this.count
        }, aEa: function () {
            return this.count >= this.rp
        }, tGa: function (a) {
            this.rp !== a && (this.rp = a | 0) && this.P0(this.rp)
        }, Hd: function (a) {
            return !!this.e[a]
        }, get: function (a, b) {
            var c = this.VX(a);
            return c ? c.value : b
        }, set: function (a, b) {
            var c = this.VX(a);
            c ? c.value = b : (c = new g.ig.Zq(a, b), this.e[a] = c, this.XA(c), this.count += 1, this.count > this.rp && this.P0(this.rp))
        }, dw: function (a) {
            this.remove(a)
        },
        remove: function (a) {
            return this.e.hasOwnProperty(a) && this.wB(this.e[a]) ? !0 : !1
        }, forEach: function (a, b) {
            for (var c = this.Wc.next; c !== this.Wc; c = c.next) a.call(b, c.value, c.key, this)
        }, UJ: function (a, b) {
            return this.e.hasOwnProperty(a) ? this.e[a].value : b
        }, nFa: function () {
            return this.Wc.next.value
        }, oFa: function () {
            return this.Wc.Ga.value
        }, shift: function () {
            return this.J_(this.Wc.next)
        }, Z1: function () {
            this.eB.length = 0
        }, H5: function (a) {
            this.eB.push(a)
        }, push: function (a) {
            a = new g.ig.Zq("", a);
            0 === this.count ? (this.Wc.Ga = null,
                a.Ga = this.Wc, this.Wc.next = a) : (this.MB.next = a, a.Ga = this.MB);
            this.count += 1;
            this.MB = a
        }, pya: function (a) {
            a = new g.ig.Zq("", a);
            0 === this.count ? (this.Wc.Ga = null, a.Ga = this.Wc, this.MB = this.Wc.next = a) : (this.Wc.next.Ga = a, a.next = this.Wc.next, a.Ga = this.Wc, this.Wc.next = a);
            this.count += 1
        }, ita: function () {
            if (this.count) {
                this.count -= 1;
                var a = this.Wc.next;
                a.next ? (a.next.Ga = this.Wc, this.Wc.next = a.next) : (this.Wc.next = null, this.MB = this.Wc.Ga = null);
                a.next = null;
                a.Ga = null;
                return a.value
            }
            return null
        }, pop: function () {
            return this.J_(this.Wc.Ga)
        },
        VX: function (a) {
            if (this.e.hasOwnProperty(a)) return a = this.e[a], this.CF && (a.remove(), this.XA(a)), a
        }, XA: function (a) {
            this.CF ? (a.next = this.Wc.next, a.Ga = this.Wc, this.Wc.next = a, a.next.Ga = a) : (a.Ga = this.Wc.Ga, a.next = this.Wc, this.Wc.Ga = a, a.Ga.next = a)
        }, P0: function (a) {
            if (!(this.count <= a || this.count < 2 * this.eB.length)) {
                for (var b = this.CF ? this.Wc.Ga : this.Wc.next, c = {}, d = 0, e = this.eB.length; d < e; d++) c[this.eB[d]] = !0;
                for (a = Math.ceil(2 * a / 3); b && this.count > a && (d = this.CF ? b.Ga : b.next, b.key && !c[b.key] && this.wB(b) && this.OJ(b.value),
                    b = d, b !== this.Wc && b !== this.MB);) ;
            }
        }, wB: function (a) {
            if (this.$B && !1 == this.$B(a.value)) return !1;
            a.remove();
            delete this.e[a.key];
            this.count -= 1;
            return !0
        }, J_: function (a) {
            this.Wc !== a && (this.$B && console.log("Warnning!!!"), this.wB(a));
            return a.value
        }, clear: function () {
            this.e = {};
            this.Wc = new g.ig.Zq("", null);
            this.Wc.Ga = this.Wc.next = this.Wc;
            this.count = 0
        }
    });
    g.ig.Zq = function (a, b) {
        this.key = a;
        this.value = b
    };
    g.ig.Zq.prototype.Ga = null;
    g.ig.Zq.prototype.next = null;
    g.ig.Zq.prototype.remove = function () {
        this.Ga.next = this.next;
        this.next.Ga = this.Ga;
        this.next = this.Ga = null
    };

    function Oc(a, b, c) {
        this.url = a;
        this.Jc = b;
        this.LQ = c;
        this.fn = this.qK = !1
    }

    function Pc(a, b, c) {
        var d = Qc;
        return function () {
            return d.call(this, a, b, c)
        }
    }

    function Qc(a, b, c) {
        a.GCa = +new Date;
        a.loaded = b;
        clearTimeout(a.xxa);
        var d = a.ysa;
        d.An.remove(a.url) && d.Wfa();
        d = a.Gra ? a.ea : a.ya;
        a.ea = null;
        (c || b || a.LQ) && a.Jc(b ? d : null, a);
        a.i5 ? (a.i5.pi(), a.i5 = null) : d && (d.onload = null, d.onerror = null, d.onabort = null, a.ya = null)
    }

    g.dF = g.aa.extend({
        IAa: "assets/image/blank.gif", r: function (a, b, c) {
            this.timeout = b || 15E3;
            this.sq = new g.ig(1024);
            this.An = new g.ig(1024);
            this.j2 = a;
            this.wQ = c
        }, qM: function (a) {
            a && this.An.count >= this.j2 && (a = this.An.Wc.Ga.value, a.fn && (this.An.remove(a.url), this.FW(a)));
            for (; this.sq.count && !(this.An.count >= this.j2);) this.gda(this.sq.shift())
        }, Wfa: function () {
            if (!this.nX) {
                this.nX = !0;
                var a = this;
                setTimeout(function () {
                    a.nX = !1;
                    a.qM()
                }, 0)
            }
        }, gda: function (a) {
            var b = document.createElement("img");
            a.dpa && (b.crossOrigin =
                "anonymous");
            b.src = a.url;
            a.ya = b;
            a.ysa = this;
            a.startTime = +new Date;
            a.qK = !0;
            b.complete ? Qc(a, !0) : (this.An.set(a.url, a), b.onload = Pc(a, !0), b.onerror = Pc(a, !1, !0), b.onabort = Pc(a, !1), a.xxa = setTimeout(Pc(a, !1, !0), this.timeout))
        }, FW: function (a) {
            a.qK && (Qc(a, !1), a.fn = !0, a.ABa = !0)
        }, zEa: function (a, b, c) {
            return this.Ry(a.url, b, c, !0, a.ta.z + "_" + a.ta.x + "_" + a.ta.y)
        }, Ry: function (a, b, c, d, e) {
            var f = this.An.get(a);
            if (f && f.fn) f.fn = !1, f.Jc = b, f.LQ = c; else {
                f = new Oc(a, b, c);
                f.Gra = d;
                f.key = e;
                if (this.sq.get(g.a.ub(f))) return;
                this.sq.set(g.a.ub(f),
                    f);
                this.qM(!0)
            }
            return f
        }, osa: function (a, b, c) {
            var d = this.An.get(a);
            if (d && d.fn) d.fn = !1, d.Jc = b, d.LQ = c; else {
                d = new Oc(a, b, c);
                d.dpa = !0;
                if (this.sq.get(g.a.ub(d))) return;
                this.sq.set(g.a.ub(d), d);
                this.qM(!0)
            }
            return d
        }, M1: function (a) {
            a.fn || (a.fn = !0, this.sq.remove(g.a.ub(a)))
        }, clear: function (a) {
            this.sq.forEach(function (a) {
                a.fn = !0
            });
            this.sq.clear();
            if (a) for (; 0 < this.An.length;) a = this.An.pop(), this.FW(a); else this.An.forEach(function (a) {
                a.fn = !0
            })
        }
    });

    function Rc(a, b, c) {
        this.z = a;
        this.x = b;
        this.y = c
    }

    Rc.prototype.lb = function () {
        return new Rc(this.z, this.x, this.y)
    };
    Rc.prototype.toString = function () {
        return this.z + "/" + this.x + "/" + this.y
    };
    g.ob = function (a) {
        var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1;
        this.ta = a;
        this.key = a.toString();
        this.Ae = b
    };
    g.Uq = Rc;
    g.o.ob = g.o.Tb.extend({
        r: function (a, b, c, d, e) {
            arguments.callee.la.apply(this, arguments);
            this.W("tileSize", a);
            this.W("tiles", a);
            this.Se(["zooms", "type", "detectRetina", "errorUrl"], a);
            a.nG && (this.W("lang", b, !0), this.W("mapStyle", b, !0), this.W("style", b, !0), this.W("features", b, !0));
            var f = "overlayer" === a.get("type") || !1 === a.get("blend");
            this.Ck = !f && !g.l.ba;
            if (g.l.ye || g.l.qHa) this.Ck = !1;
            var h = b.get("size"), h = h.width * h.height / 65536;
            this.ja = g.l.ba && g.l.ja && this.get("detectRetina");
            g.l.Mc && g.l.ba && 9 < h && (this.Ck =
                !1);
            this.Ri = !f && !a.kk;
            this.Si = !f && !a.kk;
            this.LK = c;
            this.W("reload", a);
            a.Cra ? this.W("createTile", a) : this.W("tileFun", a);
            this.Ye = d;
            this.RR = e
        }, langChanged: function () {
            this.set("reload");
            this.T.Ks()
        }, styleChanged: function () {
            this.e.yd || (this.set("reload"), this.T.Ks())
        }, featuresChanged: function () {
            this.set("reload");
            this.T.Ks()
        }, reloadChanged: function () {
            this.set("display", 0)
        }, tileFunChanged: function () {
            var a = this.LK || this.get("tileFun");
            this.no = function (b, c, d) {
                var e = a(b.ta.x, b.ta.y, b.ta.z);
                if (!b.ns || b.ns.fn) b.loaded =
                    !1, b.ns = ("3D" === this.e.C.view.type ? g.km.osa : g.km.Ry).call(g.km, e, function (a) {
                    b.ns = null;
                    a ? c(a) : d()
                }, !1)
            }
        }, createTileChanged: function () {
            this.T.D = !0;
            var a = this.T.getCreateTile();
            this.T.D = !1;
            this.no = function (b, c, d) {
                a.call(this.f.T, b.ta.x, b.ta.y, b.ta.z, c, d, b)
            };
            this.set("reload")
        }, he: function () {
            var a = this.T.get("zooms", null, !0);
            this.T.Bra && (a = [Math.min(a[0], 18), Math.min(a[1], 18)]);
            return {
                Ad: this.T.get("tileSize"),
                visible: this.T.get("visible"),
                I: this.EI(),
                hb: a,
                FH: this.Ck,
                Ri: this.Ri,
                Si: this.Si,
                opacity: this.T.get("opacity"),
                no: this.T.get("createTile"),
                Do: this.LK || this.T.get("tileFun"),
                Mc: this.T.iq ? !1 : this.T.get("detectRetina") && g.l.ja && g.l.ba,
                jd: this.zo()
            }
        }, Tl: function (a) {
            if (g.M.Yd.Mi) return new g.M.Yd.Mi(this, a)
        }
    });
    g.km = new g.dF(6, null);
    g.o.ad = g.o.Tb.extend({
        r: function (a, b) {
            this.Va = Math.min(2, window.devicePixelRatio || 1);
            this.Mc = g.l.ja && !a.rj;
            this.map = b;
            this.Iq = 0;
            this.hm = !1;
            this.cg = this.of = 0;
            this.Sg = [];
            arguments.callee.la.apply(this, arguments);
            this.qv = [];
            this.Yl = new g.o.s$;
            a && (this.W("style", a), this.W("cursor", a, !0), this.Vwa = a.get("stable") || !1, this.W("dataSources", a), this.W("bubble", a));
            this.W("display", b);
            this.Cba()
        }, he: function () {
            return {
                visible: this.get("visible"),
                hb: this.get("zooms"),
                opacity: this.get("opacity"),
                zIndex: this.get("zIndex"),
                Jx: this.T.get("alwaysRender") || !1,
                jd: this.zo()
            }
        }, dataSourcesChanged: function () {
            var a = this.get("dataSources");
            a && a.length ? "string" === typeof a ? (new g.fb.vb(a)).h("complete", function (a) {
                this.F6(a.data);
                this.Rr = a.data;
                this.hm = !0;
                this.set("display");
                this.Ka = !0;
                this.T.q("complete")
            }, this) : a.length && (this.F6(a), this.Rr = a, this.hm = !0, this.set("display"), this.Ka = !0, this.T.q("complete")) : this.clear()
        }, getDatas: function () {
            return this.Rr
        }, uya: function () {
            if (this.T.rj) {
                var a = this.vm;
                this.of = a.of;
                this.cg = a.cg
            }
        },
        oa: function (a, b) {
            var c = {type: a, data: "mouseout" === a ? this.Tfa || null : b.$t.eb, target: this.T};
            this.Tfa = "mouseout" === a ? null : b.$t.eb;
            this.T.q(a, c)
        }, pc: function (a) {
            this.oa(a.type, a)
        }, Cba: function () {
            this.h("click", this.pc);
            this.h("dblclick", this.pc);
            this.h("mousedown", this.pc);
            this.h("mouseup", this.pc);
            this.h("mouseover", this.pc);
            this.h("mouseout", this.pc);
            this.h("touchstart", this.pc);
            this.h("touchend", this.pc)
        }, xBa: function () {
            this.H("click", this.pc);
            this.H("dblclick", this.pc);
            this.H("mousedown", this.pc);
            this.H("mouseup", this.pc);
            this.H("mouseover", this.pc);
            this.H("mouseout", this.pc);
            this.H("touchstart", this.pc);
            this.H("touchend", this.pc)
        }, styleChanged: function () {
            this.vm = this.get("style");
            this.uya();
            this.set("display", 0)
        }, F6: function (a) {
            if (a) {
                this.clear();
                for (var b = 0; b < a.length; b += 1) {
                    var c = a[b].lnglat;
                    a[b].lnglat = g.a.Ia(c);
                    c = this.map.Ab(c);
                    c = new g.Zh({name: "point-" + g.a.ub(this), fa: new g.Ca.Bg([c.x, c.y], !0)});
                    c.pr = this;
                    c.eb = a[b];
                    this.uH(c)
                }
            }
        }, $pa: function (a) {
            if ("geojson" === a) return new g.y$({map: this.map});
            if ("topjson" === a) return new g.dAa({map: this.map});
            if ("subway" === a) return new g.Zza({map: this.map})
        }, yua: function (a) {
            if (a) {
                var b = [], b = [], c = {};
                if (a.rules) {
                    for (var b = a.rules, d = 0, e = b.length; d < e; d += 1) {
                        for (var f = [], h = b[d].symbolizers, k = 0, l = h.length; k < l; k += 1) h[k].fill && (f[k] = new g.style.Cg.DV(h[k].fill)), h[k].stroke && (f[k] = new g.style.Cg.hW(h[k].stroke));
                        h = f;
                        b[d].JK = h;
                        b[d] = new g.style.paa(b[d])
                    }
                    c.rules = b
                }
                if (a.symbolizers) {
                    b = a.symbolizers;
                    a = 0;
                    for (d = b.length; a < d; a += 1) b[a].fill && (b[a] = new g.style.Cg.DV(b[a].fill)),
                    b[a].stroke && (b[a] = new g.style.Cg.hW(b[a].stroke));
                    c.JK = b
                }
                a = new g.NL(c)
            } else a = new g.NL({});
            this.set("style", a);
            return a
        }, uBa: function (a, b) {
            var c = new g.fb.vb(a);
            c.h("complete", function (c) {
                c = this.ea[a] = this.$pa(b).rT(c);
                this.Gx(c);
                this.oa("complete")
            }, this);
            c.h("error", this.fc, this)
        }, bva: function (a) {
            "px" === a.target.get("unit") ? (this.of = Math.max(a.kl, this.of), this.cg = Math.max(a.kl, this.cg)) : a.kl > this.ws && (this.ws = a.kl, this.Ty = this.ws / this.map.C.hj.Up(20))
        }, uH: function (a) {
            this.Yl.add(a);
            if (!this.AC &&
                !this.T.rj) {
                if (0 === a.name.indexOf("circle") || 0 === a.name.indexOf("ellipse")) {
                    a.h("rad", this.bva, this);
                    var b = a.get("radius");
                    b.length && (b = Math.max.apply(null, b));
                    "px" === a.get("unit") ? (this.of = Math.max(b, this.of), this.cg = Math.max(b, this.cg)) : this.ws ? b > this.ws && (this.ws = b, this.Ty = this.ws / this.map.C.hj.Up(20)) : (this.ws = b, this.Ty = this.ws / this.map.C.hj.Up(20))
                }
                b = a.get("strokeWeight") || 0;
                if (!this.Uy || b > this.Uy) this.Uy = b
            }
            this.Vwa || a.W("feature", this, !0)
        }, Gx: function (a) {
            this.hm = !0;
            for (var b = 0, c = a.length; b <
            c; b += 1) this.uH(a[b])
        }, clear: function () {
            this.hm = !0;
            this.Rr = [];
            this.Yl.clear();
            this.set("display", 0)
        }, mn: function (a) {
            var b, c;
            b = this.Yl.mn([a[0] + g.a.Ea, a[1], a[2] + g.a.Ea, a[3]]);
            c = this.Yl.mn([a[0] - g.a.Ea, a[1], a[2] - g.a.Ea, a[3]]);
            a = this.Yl.mn(a);
            return g.extend(a, g.extend(b, c))
        }, tDa: function (a) {
            var b, c = this.get("style"), d = a.ml;
            c instanceof g.NL || (c = this.yua(c));
            if (d && 0 < d.length) b = c.o2(d, a); else {
                if (c.M7.length || c.ml.length) b = c.sna(a);
                b || (b = a.Cpa())
            }
            return b
        }, xR: function (a) {
            function b(a, b) {
                return a.Zl - b.Zl
            }

            var c = [], d, e, f, h, k, l = {};
            for (d in a) if (a.hasOwnProperty(d)) {
                f = a[d];
                h = f.get("zIndex");
                for (e in l) if (l.hasOwnProperty(e) && (k = c[l[e]][2], k === h)) break;
                "undefined" === typeof l[h] && (c.push([[], [], h]), l[h] = c.length - 1);
                h = c[l[h]];
                h[0].push(f)
            }
            c.sort(this.Rwa);
            a = 0;
            for (d = c.length; a < d; a += 1) c[a][0].sort(b);
            return c
        }, featureChanged: function (a) {
            this.hm = !0;
            var b = a.target, c = b.cc();
            0 !== this.Yl.Hpa([g.a.ub(b)]).length && (this.Yl.remove(b, a.sv), c && !a.Lna && this.Yl.add(b))
        }, q7: function (a) {
            this.hm = !0;
            for (var b, c = 0, d = a.length; c <
            d; c += 1) b = a[c], b.fa.sv = null, b.Yr(!0), b.ql("feature")
        }, zGa: function (a, b) {
            return a[1].zIndex === b[1].zIndex ? g.a.ub(a[1]) - g.a.ub(b[1]) : a[1].zIndex - b[1].zIndex
        }, Rwa: function (a, b) {
            return a[2] - b[2]
        }, lGa: function (a) {
            return a.zDa() === g.o.iAa.Sza
        }, Tl: function (a) {
            return this.AC ? new g.M.Ce.zl(this, a) : "c" === this.map.get("overlayRender") && g.M.canvas.zl ? new g.M.canvas.zl(this, a) : g.M.Yd.zl && "d" === this.map.get("overlayRender") ? new g.M.Yd.zl(this, a) : null
        }
    });
    g.o.ad.zb({
        Ul: function (a) {
            return this.AC ? new g.Da.Ce.zl(this, a) : this.T.rj ? new g.Da.Z$(this, a) : new g.Da.zl(this, a)
        }
    });
    g.o.s$ = g.aa.extend({
        r: function () {
            this.clear()
        }, clear: function () {
            this.Xp = [];
            this.nT = new g.Bk
        }, add: function (a) {
            var b = g.a.ub(a), c = a.cc();
            this.Xp[b] || (this.count += 1, this.Xp[b] = a, c && !g.I.cb(c.od(), [Infinity, Infinity, -Infinity, -Infinity]) && this.nT.ls(c.od(), a))
        }, oDa: function () {
            return this.Xp
        }, mn: function (a) {
            return this.nT.dwa(a)
        }, Hpa: function (a) {
            var b = a.length, c = [], d;
            for (d = 0; d < b; d += 1) this.Xp[a[d]] && c.push(this.Xp[a[d]]);
            return c
        }, remove: function (a, b) {
            var c = g.a.ub(a).toString(), d = a.cc();
            this.Xp[c] && (this.Xp[c] =
                null, d && (c = "undefined" !== typeof b ? b : d.od(), this.nT.remove(c, a)))
        }
    });
    g.Bk = g.aa.extend({
        r: function (a) {
            this.N5 = "undefined" !== typeof a ? a : 6;
            this.zJ = Math.floor(this.N5 / 2);
            this.vK = {I: [Infinity, Infinity, -Infinity, -Infinity], Gb: []};
            this.count = 0
        }, wma: function (a, b) {
            var c = -1, d = [], e;
            d.push(b);
            var f = b.Gb;
            do {
                -1 !== c && (d.push(f[c]), f = f[c].Gb, c = -1);
                for (var h = f.length - 1; 0 <= h; h -= 1) {
                    var k = f[h];
                    if ("undefined" !== typeof k.Ne) {
                        c = -1;
                        break
                    }
                    var l = g.Bk.sz(k.I[2] - k.I[0], k.I[3] - k.I[1], k.Gb.length + 1),
                        k = g.Bk.sz((k.I[2] > a.I[2] ? k.I[2] : a.I[2]) - (k.I[0] < a.I[0] ? k.I[0] : a.I[0]), (k.I[3] > a.I[3] ? k.I[3] : a.I[3]) -
                            (k.I[1] < a.I[1] ? k.I[1] : a.I[1]), k.Gb.length + 2);
                    if (0 > c || Math.abs(k - l) < e) e = Math.abs(k - l), c = h
                }
            } while (-1 !== c);
            return d
        }, ls: function (a, b, c) {
            a = {I: a, Ne: b};
            "undefined" !== typeof c && (a.type = c);
            this.M4(a, this.vK);
            this.count += 1
        }, M4: function (a, b) {
            var c;
            if (0 === b.Gb.length) b.I = g.I.lb(a.I), b.Gb.push(a); else {
                var d = this.wma(a, b), e = a;
                do {
                    if (c && "undefined" !== typeof c.Gb && 0 === c.Gb.length) {
                        var f = c;
                        c = d.pop();
                        for (var h = 0, k = c.Gb.length; h < k; h += 1) if (c.Gb[h] === f || 0 === c.Gb[h].Gb.length) {
                            c.Gb.splice(h, 1);
                            break
                        }
                    } else c = d.pop();
                    f =
                        e instanceof Array;
                    if ("undefined" !== typeof e.Ne || "undefined" !== typeof e.Gb || f) {
                        if (f) {
                            f = 0;
                            for (h = e.length; f < h; f += 1) g.I.extend(c.I, e[f].I);
                            c.Gb = c.Gb.concat(e)
                        } else g.I.extend(c.I, e.I), c.Gb.push(e);
                        if (c.Gb.length <= this.N5) if (0 < d.length) e = {I: g.I.lb(c.I)}; else break; else e = f = this.dsa(c.Gb), 1 > d.length && (c.Gb.push(f[0]), d.push(c), e = f[1])
                    } else g.I.extend(c.I, e.I), e = {I: g.I.lb(c.I)}
                } while (0 < d.length)
            }
        }, dsa: function (a) {
            for (var b = this.Dua(a); 0 < a.length;) this.Eua(a, b[0], b[1]);
            return b
        }, Dua: function (a) {
            for (var b =
                a.length - 1, c = 0, d = a.length - 1, e = 0, f = a.length - 2; 0 <= f; f -= 1) {
                var h = a[f];
                h.I[0] > a[c].I[0] ? c = f : h.I[2] < a[b].I[1] && (b = f);
                h.I[1] > a[e].I[1] ? e = f : h.I[3] < a[d].I[3] && (d = f)
            }
            Math.abs(a[b].I[2] - a[c].I[0]) > Math.abs(a[d].I[3] - a[e].I[1]) ? b > c ? (b = a.splice(b, 1)[0], c = a.splice(c, 1)[0]) : (c = a.splice(c, 1)[0], b = a.splice(b, 1)[0]) : d > e ? (b = a.splice(d, 1)[0], c = a.splice(e, 1)[0]) : (c = a.splice(e, 1)[0], b = a.splice(d, 1)[0]);
            return [{I: g.I.lb(b.I), Gb: [b]}, {I: g.I.lb(c.I), Gb: [c]}]
        }, Eua: function (a, b, c) {
            for (var d = g.Bk.sz(b.I[2] - b.I[0], b.I[3] - b.I[1],
                b.Gb.length + 1), e = g.Bk.sz(c.I[2] - c.I[0], c.I[3] - c.I[1], c.Gb.length + 1), f, h, k, l = a.length - 1; 0 <= l; l -= 1) {
                var m = a[l],
                    n = [b.I[0] < m.I[0] ? b.I[0] : m.I[0], b.I[2] > m.I[2] ? b.I[2] : m.I[2], b.I[1] < m.I[1] ? b.I[1] : m.I[1], b.I[3] > m.I[3] ? b.I[3] : m.I[3]],
                    n = Math.abs(g.Bk.sz(n[1] - n[0], n[3] - n[2], b.Gb.length + 2) - d),
                    m = [c.I[0] < m.I[0] ? c.I[0] : m.I[0], c.I[2] > m.I[2] ? c.I[2] : m.I[2], c.I[1] < m.I[1] ? c.I[1] : m.I[1], c.I[3] > m.I[3] ? c.I[3] : m.I[3]],
                    m = Math.abs(g.Bk.sz(m[1] - m[0], m[3] - m[2], c.Gb.length + 2) - e), p = Math.abs(m - n);
                if (!h || !f || p < f) h = l, f = p, k = m < n ? c :
                    b
            }
            d = a.splice(h, 1)[0];
            b.Gb.length + a.length + 1 <= this.zJ ? (b.Gb.push(d), g.I.extend(b.I, d.I)) : c.Gb.length + a.length + 1 <= this.zJ ? (c.Gb.push(d), g.I.extend(c.I, d.I)) : (k.Gb.push(d), g.I.extend(k.I, d.I))
        }, remove: function (a, b) {
            var c = [];
            c[0] = {I: a};
            (c[1] = b) || (c[1] = !1);
            c[2] = this.vK;
            this.count -= 1;
            if (!1 === c[1]) {
                var d = 0, e = [];
                do d = e.length, e = e.concat(this.u7.apply(this, c)); while (d !== e.length);
                return e
            }
            return this.u7.apply(this, c)
        }, u7: function (a, b, c) {
            var d = [], e = [], f = [];
            if (!a || !g.I.Ng(a.I, c.I)) return f;
            a = g.I.lb(a.I);
            var h;
            e.push(c.Gb.length);
            d.push(c);
            do {
                c = d.pop();
                var k = e.pop() - 1;
                if ("undefined" !== typeof b) for (; 0 <= k;) {
                    var l = c.Gb[k];
                    if (g.I.Ng(a, l.I)) if (b && "undefined" !== typeof l.Ne && l.Ne === b || !b && ("undefined" !== typeof l.Ne || g.I.k2(a, l.I))) {
                        "undefined" !== typeof l.Gb ? (f = this.mz(l, !0, [], l), c.Gb.splice(k, 1)) : f = c.Gb.splice(k, 1);
                        g.Bk.xT(c);
                        b = void 0;
                        c.Gb.length < this.zJ && (h = this.mz(c, !0, [], c));
                        break
                    } else "undefined" !== typeof l.Gb && (e.push(k), d.push(c), c = l, k = l.Gb.length);
                    k -= 1
                } else if ("undefined" !== typeof h) {
                    c.Gb.splice(k + 1, 1);
                    0 < c.Gb.length && g.Bk.xT(c);
                    k = 0;
                    for (l = h.length; k < l; k += 1) this.M4(h[k], c);
                    h.length = 0;
                    0 === d.length && 1 >= c.Gb.length ? (h = this.mz(c, !0, h, c), c.Gb.length = 0, d.push(c), e.push(1)) : 0 < d.length && c.Gb.length < this.zJ ? (h = this.mz(c, !0, h, c), c.Gb.length = 0) : h = void 0
                } else g.Bk.xT(c)
            } while (0 < d.length);
            return f
        }, search: function (a, b) {
            return this.mz({I: a}, !1, [], this.vK, b)
        }, dwa: function (a, b) {
            return this.mz({I: a}, !1, [], this.vK, b, !0)
        }, mz: function (a, b, c, d, e, f) {
            var h = {}, k = [];
            if (!g.I.Ng(a.I, d.I)) return f ? h : c;
            k.push(d.Gb);
            do {
                d = k.pop();
                for (var l = d.length - 1; 0 <= l; l -= 1) {
                    var m = d[l];
                    if (g.I.Ng(a.I, m.I)) if ("undefined" !== typeof m.Gb) k.push(m.Gb); else if ("undefined" !== typeof m.Ne) if (b) c.push(m); else if ("undefined" === typeof e || m.type === e) m = m.Ne, "undefined" !== typeof f ? h[g.a.ub(m)] = m : c.push(m)
                }
            } while (0 < k.length);
            return "undefined" !== typeof f ? h : c
        }
    });
    g.Bk.xT = function (a) {
        var b = a.Gb.length, c = a.I;
        if (0 === b) g.I.empty(c); else {
            var d = a.Gb[0].I;
            c[0] = d[0];
            c[2] = d[2];
            c[1] = d[1];
            c[3] = d[3];
            for (d = 1; d < b; d += 1) g.I.extend(c, a.Gb[d].I)
        }
    };
    g.Bk.sz = function (a, b, c) {
        var d = (a + b) / 2;
        a *= b;
        return a * c / (a / (d * d))
    };
    g.w = g.w || {};
    g.w.zh = g.aa.extend({
        ka: [g.va, g.Re], iua: ["position", "altitude", "visible", "clickable", "bubble"], r: function (a, b) {
            this.map = b;
            this.Se(this.iua, a);
            this.W("zIndex", a);
            this.W("draggable", a);
            g.l.Ff && this.Jba();
            g.l.ba || this.iM();
            this.Yb = a;
            this.Yb.w = this
        }, draggableChanged: function () {
            this.get("draggable") ? this.hM() : this.ZN()
        }, oa: function (a, b) {
            var c;
            c = b ? {type: a, pixel: b.tb, target: this.Yb, lnglat: b.Yf} : {type: a};
            this.Yb && this.Yb.q(a, c)
        }, pc: function (a) {
            ("click" !== a.type && "rightclick" !== a.type && "dblclick" !== a.type &&
                "longclick" !== a.type || this.get("clickable")) && this.oa(a.type, a)
        }, gM: function () {
            this.h("click", this.pc);
            this.h("rightclick", this.pc);
            this.h("longclick", this.pc);
            this.h("longpress", this.pc);
            this.h("dblclick", this.pc)
        }, R0: function () {
            this.H("click", this.pc);
            this.H("rightclick", this.pc);
            this.H("longclick", this.pc);
            this.H("longpress", this.pc);
            this.H("dblclick", this.pc)
        }, iM: function () {
            this.get("clickable") && this.gM();
            this.h("mousemove", this.pc);
            this.h("mouseout", this.pc);
            this.h("mouseover", this.pc);
            this.h("mousedown",
                this.pc);
            this.h("mouseup", this.pc)
        }, yBa: function () {
            this.R0();
            this.H("mousemove", this.pc);
            this.H("mouseout", this.pc);
            this.H("mouseover", this.pc);
            this.H("mousedown", this.pc);
            this.H("mouseup", this.pc)
        }, clickableChanged: function () {
            this.get("clickable") ? this.gM() : this.R0()
        }, Jba: function () {
            this.get("clickable") && this.gM();
            this.h("touchstart", this.pc, this);
            this.h("touchmove", this.pc, this);
            this.h("touchend", this.pc, this)
        }, hM: function () {
            this.h("dragstart", this.Pt);
            this.h("dragging", this.Nt);
            this.h("dragend",
                this.Ot)
        }, Pt: function (a) {
            this.map.yS(a);
            this.Xf = a.tb;
            this.m5 = a.Oa;
            this.l5 = a.Yf;
            this.oa("dragstart", a)
        }, Nt: function (a) {
            var b = this.map.C.view.type;
            if ("2D" == b) {
                var c = a.tb.$a(this.Xf), b = c.x, c = c.y;
                this.Xf = a.tb;
                var d = this.map.get("rotation") * Math.PI / 180, e = b * Math.cos(d) + Math.sin(d) * c,
                    b = -Math.sin(d) * b + Math.cos(d) * c;
                this.No(new g.G(e, b));
                this.oa("dragging", a)
            } else "3D" == b && a.Oa && (c = a.tb.$a(this.Xf), b = c.x, c = c.y, e = a.Oa.$a(this.m5), a.Yf.$a(this.l5), this.Xf = a.tb, "function" === typeof this.Vy && this.Vy(b, c, e), this.m5 =
                a.Oa, this.l5 = a.Yf, this.oa("dragging", a))
        }, Ot: function (a) {
            this.map.aw();
            "3D" == this.map.C.view.type && this.Yb.reset && this.Yb.reset();
            this.oa("dragend", a)
        }, ZN: function () {
            this.H("dragstart", this.Pt);
            this.H("dragging", this.Nt);
            this.H("dragend", this.Ot)
        }, aN: function (a) {
            var b, c, d = [];
            if (a) for (b = 0, c = a.length; b < c; b += 1) d.push(this.bN(a[b]));
            return d
        }, bN: function (a) {
            a = this.map.Ab(a);
            return [a.x, a.y]
        }, ag: function (a) {
            var b = this.L.kb || this.map.get("centerCoords"), c = Math.pow(2, 20 - this.map.get("zoom"));
            return [(a[0] -
                b.x) / c, (a[1] - b.y) / c]
        }, PA: function (a, b) {
            var c = this.map.C, d = [], e = !1;
            a[0] instanceof Array && "number" !== typeof a[0][0] && (e = !0);
            if (e) for (var e = [], f = 0, h = a.length; f < h; f++) {
                for (var k = 0, l = a[f].length; k < l; k++) {
                    var m = c.Ab(a[f][k]);
                    m.x += b[0];
                    m.y += b[1];
                    e.push(c.Ld(m))
                }
                d.push(e)
            } else for (e = 0, f = a.length; e < f; e++) h = c.Ab(a[e]), h.x += b[0], h.y += b[1], d.push(c.Ld(h));
            return d
        }
    });
    g.w.rb = g.w.zh.extend({
        KD: "content contentDom icon opacity angle autoRotation offset textAlign verticalAlign shadow title label isTop shape topWhenClick topWhenMouseOver noSelect anchor".split(" "),
        kla: {
            AMAP_ANIMATION_NONE: !1,
            AMAP_ANIMATION_DROP: g.Dj.Easing.Bounce,
            AMAP_ANIMATION_BOUNCE: g.Dj.Easing.Cubic
        },
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.Se(this.KD, a);
            this.W("move", a);
            this.$la();
            this.mu();
            this.set("AnimationOffset", new g.G(0, 0), !0);
            this.W("raiseOnDrag", a);
            this.W("animation",
                a)
        },
        rN: function (a, b, c) {
            var d = this.get("animation");
            if (d && "AMAP_ANIMATION_NONE" !== d) {
                var e = this;
                this.wn = new g.Dj;
                this.wn.transition = function (c, h, k) {
                    if ("AMAP_ANIMATION_NONE" === d) return 0;
                    if (a && 600 <= k) return e.wn.stop(), 0;
                    c = 0 === Math.floor(k / 600) % 2 ? "Out" : "In";
                    "out" === b ? c = "Out" : "in" === b && (c = "In");
                    return e.kla[d][c](k % 600 / 600)
                };
                c = c || 40;
                this.wn.lq = function (a) {
                    e.set("AnimationOffset", e.aO.add(new g.G(0, -1 * c * a)))
                };
                this.aO = new g.G(0, 0);
                this.wn.Cn()
            }
        },
        AnimationOffsetChanged: function () {
            this.positionChanged()
        },
        T_: function () {
            this.wn && (this.wn.stop(), this.set("AnimationOffset", this.aO));
            this.set("AnimationOffset", new g.G(0, -40));
            if (this.Rq) this.Rq.set("position", this.get("position")); else {
                var a = new z.w.rb({
                    zIndex: this.get("zIndex") - 1,
                    icon: new z.w.ai({
                        image: g.A.yb + "/theme/v1.3/dragCross.png",
                        size: new g.xd(14, 11),
                        innerOverlay: !0
                    }),
                    offset: new g.G(-4, -5),
                    position: this.get("position"),
                    innerOverlay: !0
                });
                a.Aa = !0;
                this.Rq = a
            }
            this.Rq.D = !0;
            this.Rq.setMap(this.map.C);
            this.Rq.D = !1
        },
        JX: function () {
            this.set("animation", "AMAP_ANIMATION_DROP",
                !0);
            this.rN(!0, "in");
            this.Rq.D = !0;
            this.Rq.D = !1
        },
        animationChanged: function () {
            this.wn && (this.wn.stop(), this.set("AnimationOffset", this.aO), this.wn = null);
            var a = this.get("animation");
            a && "AMAP_ANIMATION_NONE" !== a && ("AMAP_ANIMATION_DROP" === a ? this.rN(!0, "in", 100) : this.rN())
        },
        bh: function () {
            this.Rq && this.Rq.set("position", this.get("position"))
        },
        raiseOnDragChanged: function () {
            this.get("raiseOnDrag") ? (this.h("dragstart", this.T_, this), this.h("dragging", this.bh, this), this.h("dragend", this.JX, this)) : (this.H("dragstart",
                this.T_, this), this.H("dragging", this.bh, this), this.H("dragend", this.JX, this))
        },
        No: function (a) {
            var b = this.get("position");
            a = this.map.Ab(b).add(a.Kd(Math.pow(2, 20 - this.map.get("zoom"))));
            b instanceof g.U ? this.set("position", this.map.Ld(a)) : this.set("position", a)
        },
        Vy: function (a, b) {
            var c = this.get("position"), d = this.get("altitude"), c = this.map.qs(c, d),
                d = this.map.Hp(new g.G(c.x + a, c.y + b), null, d);
            this.set("position", d)
        },
        $la: function () {
            var a = this.get("content"), b = this.get("shadow"), c = this.get("offset"), d = this.get("label"),
                e, f = this;
            e = a ? this.z1(a, c) : this.uP(this.get("icon"), function () {
                f.L && f.L.ca ? (g.l.ti && g.a.iepngFix(e), f.offsetChanged(), f.XK()) : f.map && f.map.set("display")
            });
            this.set("contentDom", e, !0);
            b && (a = this.F1(b, c), this.set("shadowDom", a, !0));
            d && d.content && this.set("labelDom", this.vP(d.content), !0)
        },
        vP: function (a) {
            var b = document.createElement("div");
            b.className = "amap-marker-label";
            b.innerHTML = a;
            return b
        },
        mu: function () {
            var a = this.get("position");
            if (this.map && a && !this.L) {
                var b = this.map, a = this.map.Ab(a), a = this.L =
                    new g.Zh({name: "marker-" + g.a.ub(this), map: b, fa: new g.Ca.Bg([a.x, a.y])});
                a.Cp = this.Yb.CLASS_NAME;
                a.pr = this;
                this.W("coords", a, !0);
                a.Se("offset textAlign verticalAlign isTop zIndex params noSelect".split(" "), this)
            }
        },
        getParams: function () {
            return {
                zIndex: this.get("zIndex"),
                Ap: this.get("angle"),
                Ig: this.get("contentDom"),
                mJ: this.get("labelDom"),
                h8: this.get("shadowDom"),
                opacity: this.get("opacity"),
                altitude: this.get("altitude"),
                title: this.get("title"),
                label: this.get("label"),
                UE: this.get("AnimationOffset"),
                verticalAlign: this.get("verticalAlign"),
                textAlign: this.get("textAlign"),
                offset: this.get("offset"),
                f5: this.get("isTop"),
                shape: this.get("shape"),
                visible: this.get("visible") && !this.Yb.get("outOfZooms"),
                anchor: this.get("anchor")
            }
        },
        offsetChanged: function () {
            function a(a) {
                var c = b.get("offset"), f = b.get("AnimationOffset"), h = b.get("verticalAlign"),
                    k = b.get("textAlign"), l = Math.round(a.x) + c.x + f.x;
                a = Math.round(a.y) + c.y + f.y;
                var f = b.get("anchor"), m = b.L.Qj || g.j.wo(b.L.Ig);
                b.L.Qj = m;
                c = m[0];
                m = m[1];
                f && (f = f.split("-"),
                    2 === f.length ? (k = f[1], h = f[0]) : 1 === f.length && "center" === f[0] && (k = "center", h = "middle"));
                switch (k) {
                    case "center":
                        l -= c / 2;
                        break;
                    case "right":
                        l -= c
                }
                switch (h) {
                    case "middle":
                        a -= m / 2;
                        break;
                    case "bottom":
                        a -= m
                }
                b.L.ca.style.left = l + "px";
                b.L.ca.style.top = a + "px"
            }

            if (this.map) if (this.L && this.L.ca) {
                var b = this, c = this.map.C.view.type;
                "2D" == c ? (c = this.map.Ab(this.get("position")), c = c.$a(this.L.La).ed(Math.pow(2, 20 - this.map.get("zoom"))), this.L.ca && (this.L.ca.nB && this.L.ca.parentNode !== this.L.ca.nB ? this.map.set("display") :
                    a(c))) : "3D" == c && (c = this.get("position"), c = this.map.qs(c, this.get("altitude")), this.L.ca && (this.L.ca.nB && this.L.ca.parentNode !== this.L.ca.nB ? this.map.set("display") : a(c)))
            } else this.map.set("display")
        },
        altitudeChanged: function () {
            this.offsetChanged()
        },
        positionChanged: function () {
            if (this.L) {
                var a = this.map.Ab(this.get("position"));
                this.set("coords", [a.x, a.y]);
                this.map && (this.L.iaa = !0, this.offsetChanged())
            }
        },
        anchorChanged: function () {
            this.AF()
        },
        textAlignChanged: function () {
            this.AF()
        },
        verticalAlignChanged: function () {
            this.AF()
        },
        AF: function () {
            this.L && (this.L.Qj = null, this.L.ge = !0, this.map && (this.map.sd.gm = !0, this.map.set("display")))
        },
        contentChanged: function () {
            if (this.L) {
                this.L.Qj = null;
                this.map.sd.gm = !0;
                -1 === g.a.indexOf(this.map.sd.Sg, this.L) && this.map.sd.Sg.push(this.L);
                var a = this.get("contentDom");
                this.L.ca && this.L.ca === a.parentNode && this.L.ca.removeChild(a);
                var a = this.get("content"), b = this.get("offset"), a = this.z1(a, b);
                this.set("contentDom", a);
                this.L.ca ? (g.l.ti && g.a.iepngFix(a), this.L.ca.appendChild(a), this.L.Ig = a, this.offsetChanged(),
                    this.XK()) : this.map && this.map.set("display")
            }
        },
        iconChanged: function () {
            if (this.L && this.L.ca && !this.get("content")) {
                this.L.Qj = null;
                this.map.sd.gm = !0;
                -1 === g.a.indexOf(this.map.sd.Sg, this.L) && this.map.sd.Sg.push(this.L);
                this.L.ca && this.get("contentDom") && this.L.ca.removeChild(this.get("contentDom"));
                var a = this.get("icon");
                this.get("offset");
                var b = this, c = this.uP(a, function () {
                    b.L && b.L.ca ? (g.l.ti && g.a.iepngFix(c), b.offsetChanged(), b.XK()) : b.map && b.map.set("display")
                });
                this.set("contentDom", c);
                this.L.ca &&
                (this.L.ca.appendChild(c), this.L.Ig = c)
            }
        },
        shadowChanged: function () {
            if (this.L && this.L.ca) {
                var a = this.get("shadowDom");
                this.L.ca && a && a.parentNode === this.L.ca && this.L.ca.removeChild(a);
                if (a = this.get("shadow")) {
                    var b = this.get("offset"), a = this.F1(a, b);
                    this.set("shadowDom", a);
                    this.L.ca && this.L.ca.appendChild(a)
                }
            }
        },
        titleChanged: function () {
            this.L && this.L.Ig && "string" === typeof this.get("title") && this.L.Ig && this.get("title") && (this.L.Ig.title = this.get("title"))
        },
        XK: function (a, b) {
            a = a || this.get("label");
            b = b ||
                this.get("labelDom");
            if (a && b) {
                var c = a.direction, d = this.L.Qj || g.j.wo(this.L.Ig), e = d[0], d = d[1], f = g.j.wo(b), h = f[0],
                    k = f[1];
                this.L.jv = f;
                var l = f = 0;
                switch (c) {
                    case "top":
                        f = -k;
                        l = (e - h) / 2;
                        break;
                    case "right":
                        f = (d - k) / 2;
                        l = e;
                        break;
                    case "bottom":
                        f = d;
                        l = (e - h) / 2;
                        break;
                    case "left":
                        f = (d - k) / 2;
                        l = -h;
                        break;
                    case "center":
                        f = (d - k) / 2, l = (e - h) / 2
                }
                a.offset && (f += a.offset.y, l += a.offset.x);
                b.style.top = f + "px";
                b.style.left = l + "px"
            }
        },
        labelChanged: function (a) {
            a = a || this.get("label");
            if (this.L && this.L.ca) {
                this.L.jv = null;
                var b = this.L.ca, c =
                    this.get("labelDom");
                c && c.parentNode === b && b.removeChild(c);
                a && a.content && (c = "", a.content && (c = this.vP(a.content), b.appendChild(c), this.XK(a, c)), this.set("labelDom", c))
            } else a && a.content ? this.set("labelDom", this.vP(a.content), !0) : this.set("labelDom", null)
        },
        isTopChanged: function () {
            var a = this.map.sd.NK, b = this.get("isTop"), c = this.get("zIndex");
            a ? a === this ? this.L && this.L.ca && (this.L.ca.style.zIndex = b ? this.map.sd.Iq + 10 : c, this.map.sd.NK = b ? this : null) : (a.L && a.L.ca && (a.L.ca.style.zIndex = b ? a.get("zIndex") : this.map.sd.Iq +
                10), this.L && this.L.ca && (this.L.ca.style.zIndex = b ? this.map.sd.Iq + 10 : c), this.map.sd.NK = b ? this : a) : (this.map.sd.NK = this, this.L && this.L.ca && (this.L.ca.style.zIndex = b ? this.map.sd.Iq + 10 : c))
        },
        visibleChanged: function () {
            this.L && this.L.ca && (this.get("visible") && !this.Yb.get("outOfZooms") ? this.L.ca.style.display = "block" : this.L.ca.style.display = "none")
        },
        $ta: function () {
            this.visibleChanged()
        },
        angleChanged: function () {
            if (!g.l.ye && this.L && this.L.ca) {
                var a = this.L, b = a.get("params"), c = b.textAlign, d = b.verticalAlign, e =
                    b.offset, b = e.x, e = e.y;
                this.AF();
                if ("AMap.Text" == a.Cp) {
                    var e = b = 0, f = a.Qj || g.j.wo(a.Ig), h = f[0], k = f[1];
                    a.Qj = f;
                    switch (c) {
                        case "center":
                            b = h / 2;
                            break;
                        case "right":
                            b = h
                    }
                    switch (d) {
                        case "middle":
                            e = k / 2;
                            break;
                        case "bottom":
                            e = k
                    }
                } else b = -b, e = -e;
                g.j.rotate(this.L.ca, this.get("angle") || 0, {x: b, y: e})
            }
        },
        zIndexChanged: function () {
            var a = this.get("zIndex");
            if (a > this.map.sd.Iq) {
                this.map.sd.Iq = a;
                var b = this.map.sd.NK;
                b && b.L && b.L.ca && (b.L.ca.style.zIndex = a + 10)
            }
            this.L && this.L.ca && (this.L.ca.style.zIndex = this.get("isTop") ? this.map.sd.Iq +
                10 : this.get("zIndex"))
        },
        opacityChanged: function () {
            var a = this.get("contentDom"), b = this.get("shadowDom");
            a && g.j.zq(a, this.get("opacity"));
            b && g.j.zq(b, this.get("opacity"))
        },
        z1: function (a) {
            var b;
            b = document.createElement("div");
            b.className = "amap-marker-content";
            "string" !== typeof a ? b.appendChild(a) : (b.innerHTML = a, b.childNodes[0] && !b.childNodes[0].style && (b.style["white-space"] = "pre"));
            g.j.zq(b, this.get("opacity"));
            return b
        },
        uP: function (a, b) {
            var c, d = 0, e = 0, f, h, k, l, m, n;
            a ? ("string" === typeof a ? (c = a, n = !0) : (c =
                a.get("image"), e = a.get("size"), f = a.get("imageSize"), d = e.width, e = e.height, f && (l = f.width, m = f.height)), f = "string" !== typeof a ? a.get("imageOffset") : {
                x: 0,
                y: 0
            }) : (c = g.A.zi + "/mark_bs.png", f = {x: 0, y: 0}, d = 19, e = 33, l = 19, m = 33);
            h = document.createElement("div");
            h.className = "amap-icon";
            h.style.position = "absolute";
            h.style.overflow = n ? "inherit" : "hidden";
            d && (h.style.width = d + "px");
            e && (h.style.height = e + "px");
            k = document.createElement("img");
            l && m && (k.style.width = l + "px", k.style.height = m + "px");
            k.style.top = f.y + "px";
            k.style.left =
                f.x + "px";
            h.appendChild(k);
            g.j.zq(g.l.ye && n ? k : h, this.get("opacity"));
            d && e || (h.$L = !1);
            g.F.h(k, "load", function q() {
                this.L && (this.L.Qj = null);
                this.map && this.map.sd && (this.map.sd.gm = !0);
                g.F.H(k, "load", q, this);
                if (this.L && this.L.ca) {
                    var a = this.get("labelDom");
                    a && this.L.ca.appendChild(a)
                }
                h.$L = !0;
                b && b()
            }, this);
            k.src = c;
            return h
        },
        F1: function (a) {
            a = this.uP(a);
            a.style.zIndex = -1;
            return a
        },
        moveChanged: function () {
            var a = this.get("move");
            if (!1 === a) return this.bxa();
            void 0 !== a && ("pause" === a.action ? this.Bua() : "[object Array]" ===
            Object.prototype.toString.call(a.Yf) ? a.Yf && ("resume" === a.action && this.vG ? this.moveTo(a.Yf[a.Yf.tp || 0], a.speed, a.sb) : (this.vG && this.q("movestop"), a.Yf.tp = 0, this.set("position", a.Yf[0]), this.cta(a.Yf, a.speed, a.sb, a.Ama))) : this.moveTo(a.Yf, a.speed, a.sb, !0))
        },
        moveTo: function (a, b, c, d) {
            if (!(0 >= b)) {
                var e = this.get("position");
                a.$a(e);
                var f = Math.round(a.we(e) / 1E3 / b * 36E5);
                if (0 === f) return this.q("moveend");
                this.Bi && (this.Bi.stop(), this.Bi = null);
                this.Bi = new g.Dj(e, a);
                c = c || function (a) {
                    return a
                };
                this.Bi.transition =
                    function (a, b, d) {
                        if (d >= f) return b;
                        var e = (b.Q - a.Q) * c(d / f) + a.Q;
                        a = (b.P - a.P) * c(d / f) + a.P;
                        return new g.U(e, a)
                    };
                this.Bi.lq = function (b) {
                    this.set("position", b);
                    d && this.Yb.q("moving", {passedPath: [this.Bi.start, this.get("position")]});
                    this.q("moving");
                    b.cb(a) && (this.Bi && (this.Bi.stop(), this.Bi = null), this.Yb.q("moveend"), this.q("moveend"))
                };
                this.get("autoRotation") && !g.l.ye && (b = "2D" == (this.map.C.view.type || "2D") ? this.$da(e, a) : this.aea(e, a), this.set("angle", b));
                this.Bi.Cn(this)
            }
        },
        bxa: function () {
            this.Bi && (this.Bi.stop(),
                this.Bi = null, this.q("movestop"))
        },
        Bua: function () {
            this.Bi && (this.Bi.stop(), this.Bi = null, this.q("movepause"))
        },
        cta: function (a, b, c, d) {
            function e() {
                var b = a.slice(0, a.tp || 0);
                b.push(this.get("position"));
                this.Yb.q("moving", {passedPath: b})
            }

            function f() {
                a.tp < a.length - 1 ? (a.tp += 1, this.moveTo(a[a.tp], b, c)) : (this.oa("movealong"), d ? (a.tp = 0, this.set("position", a[0]), this.moveTo(a[a.tp], b, c)) : this.q("movestop"))
            }

            var h = Math.min(a.tp || 0, a.length - 1);
            this.vG || (this.vG = !0, this.h("moving", e, this), this.h("moveend", f, this),
                this.h("movestop", function l() {
                    this.vG = !1;
                    this.H("moveend", f, this);
                    this.H("moving", e, this);
                    this.H("movestop", l, this)
                }, this));
            this.moveTo(a[h], b, c)
        },
        aea: function (a, b) {
            var c = this.map, d = c.qs(a), c = c.qs(b), e = 0;
            c.we(d);
            var f = c.y - d.y, h = c.x - d.x;
            0 !== c.x - d.x ? (e = Math.atan((c.y - d.y) / (c.x - d.x)), 0 <= f && 0 > h ? e = Math.PI + e : 0 > f && 0 >= h ? e = Math.PI + e : 0 > f && 0 <= h && (e = 2 * Math.PI + e)) : e = c.y > d.y ? Math.PI / 2 : 3 * Math.PI / 2;
            return g.a.hc(180 * e / Math.PI, 1)
        },
        $da: function (a, b) {
            var c = this.map, d = c.Ab(a), c = c.Ab(b), e = 0;
            c.we(d);
            var f = c.y - d.y, h = c.x -
                d.x;
            0 !== c.x - d.x ? (e = Math.atan((c.y - d.y) / (c.x - d.x)), 0 <= f && 0 > h ? e = Math.PI + e : 0 > f && 0 >= h ? e = Math.PI + e : 0 > f && 0 <= h && (e = 2 * Math.PI + e)) : e = c.y > d.y ? Math.PI / 2 : 3 * Math.PI / 2;
            return g.a.hc(180 * e / Math.PI, 1)
        }
    });
    g.w.Hn = g.w.zh.extend({
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.W("items", a, !0);
            this.W("content", a, !0);
            this.W("resolution", b);
            this.W("centerCoords", b);
            this.Bp = a
        }, Zy: function (a) {
            this.Mg();
            this.dt();
            this.xm();
            this.ql("resolution");
            this.ql("centerCoords");
            this.ql("render");
            this.W("resolution", a);
            this.W("centerCoords", a);
            this.W("render", a);
            this.map.h("movestart", this.Sm, this);
            this.map.h("mapmove", this.Sm, this);
            this.map.h("zoomstart", this.Sm, this);
            this.map.h("click", this.Sm, this);
            this.map.h("closeOverlays", this.Sm, this);
            this.map.h("rotate", this.Sm, this)
        }, Sm: function () {
            this.Bp.map && (this.Bp.D = !0, this.Bp.close(), this.Bp.D = !1)
        }, mapChanged: function () {
        }, positionChanged: function () {
            this.xm()
        }, renderChanged: function () {
            this.xm()
        }, Mg: function () {
            this.K && (this.K.parentNode && this.K.parentNode.removeChild(this.K), this.K = null);
            var a = g.j.create("div", null, "amap-menu");
            g.F.h(a, "mousedown", function (a) {
                g.F.stopPropagation(a)
            }, this);
            this.K = a;
            this.map.Ta.w.appendChild(this.K)
        }, dt: function () {
            var a =
                this, b = this.K;
            b.innerHTML = "";
            var c = this.get("content");
            if ("object" === typeof c) b.appendChild(c); else if ("string" === typeof c) b.innerHTML = c; else if ((c = this.get("items")) && c.length) {
                var d = g.j.create("ul", b, "amap-menu-outer");
                c.sort(function (a, b) {
                    return isNaN(a.PJ) || isNaN(b.PJ) ? 0 : a.PJ - b.PJ
                });
                for (b = 0; b < c.length; b += 1) (function (b) {
                    var c = b.Fn, h = b.sb, k = g.j.create("li", d);
                    k.innerHTML = c;
                    g.F.h(k, "click", function () {
                        h.call(k);
                        a.Bp.D = !0;
                        a.Bp.close();
                        a.Bp.D = !1
                    }, k)
                })(c[b])
            } else this.K.innerHTML = ""
        }, xm: function () {
            var a =
                this.map, b = this.K;
            a && b && (this.map.get("zoom"), b = this.get("position"), b = a.qs(b), a = b.y, b = b.x, this.K.style.right = "", this.K.style.bottom = "", this.K.style.left = b + "px", this.K.style.top = a + "px")
        }, Tg: function () {
            this.K && (this.map.H("click", this.OAa, this), this.map.Ta.w.removeChild(this.K), this.Bp.mi = !1, this.K = this.Bp.Ie.map = null, this.map.H("movestart", this.Sm, this), this.map.H("zoomstart", this.Sm, this), this.map.H("click", this.Sm, this), this.map.H("closeOverlays", this.Sm, this), this.map.H("rotate", this.Sm, this))
        },
        visibleChanged: function () {
            this.K && (this.get("visible") ? this.K.style.display = "block" : this.K.style.display = "none")
        }, itemsChanged: function () {
            this.K && this.dt()
        }
    });
    g.w.Qe = g.w.zh.extend({
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.Se("content contentDom position contentU altitude isCustom autoMove showShadow closeWhenClickMap size offset anchor".split(" "), a);
            this.W("retainWhenClose", a, !0);
            a.W("toBeClose", this);
            this.ff = a
        }, Zy: function (a) {
            this.bna || (this.Mg(), this.dt());
            this.ql("resolution");
            this.ql("centerCoords");
            this.ql("render");
            this.W("resolution", a);
            this.W("centerCoords", a);
            this.W("render", a);
            this.map = a;
            a.Ta.w.appendChild(this.$b);
            this.$U();
            this.xm();
            this.NW();
            this.bna = !0;
            this.Rma();
            this.Yb.q("onAdd", {type: "onAdd", target: this.Yb})
        }, Mg: function () {
            var a = g.j.create("div");
            a.className = "amap-info";
            var b = g.j.create("div", a, "amap-info-shadowContainer"), c = g.j.create("div", a), d = this.get("anchor"),
                e = "amap-info-contentContainer";
            d && (e = d + " amap-info-contentContainer");
            d = g.j.create("div", c, e);
            a.style.position = "absolute";
            c.style.position = "absolute";
            c.style.bottom = "0px";
            c.style.left = "0px";
            b.style.position = "absolute";
            this.$b = a;
            this.Wf = c;
            this.gU = b;
            this.lh =
                d;
            this.set("contentDom", this.lh, !0)
        }, dt: function () {
            var a = this.get("contentU");
            if (a) {
                var b = this.get("isCustom"), c = this.lh, d = this.gU;
                c.innerHTML = "";
                var e = null;
                if (b) {
                    if ("string" === typeof a) c.innerHTML = a; else if (a instanceof Array) for (e = 0; e < a.length; e += 1) c.appendChild(a[e]); else c.appendChild(a);
                    e = c;
                    d.parentNode && d.parentNode.removeChild(d)
                } else {
                    e = "amap-info-content amap-info-outer";
                    g.l.ye && (e += " amap-info-content-ie8");
                    e = this.gra = d = g.j.create("div", c, e);
                    "string" === typeof a ? d.innerHTML = a : d.appendChild(a);
                    this.dna = d;
                    a = g.j.create("a", this.gra, "amap-info-close");
                    a.innerHTML = "\u00d7";
                    this.LP = a;
                    a.href = "javascript: void(0)";
                    g.l.Ff && (g.F.h(a, "touchstart", function (a) {
                        g.F.stop(a)
                    }, this), g.F.h(a, "touchend", function (a) {
                        g.F.stop(a);
                        this.ff.D = !0;
                        this.ff.close();
                        this.ff.D = !1
                    }, this), g.F.h(a, "click", function (a) {
                        g.F.stop(a);
                        this.ff.D = !0;
                        this.ff.close();
                        this.ff.D = !1
                    }, this));
                    g.l.ba || (g.F.h(a, "mousedown", function (a) {
                        g.F.stop(a)
                    }, this), g.F.h(a, "click", function (a) {
                            g.F.stop(a);
                            this.ff.D = !0;
                            this.ff.close();
                            this.ff.D = !1
                        },
                        this));
                    if (a = this.get("size", !0)) 0 !== a.width && (d.style.width = a.width + "px"), 0 !== a.height && (d.style.height = a.height + "px");
                    this.get("anchor");
                    g.j.create("div", c, g.l.ye ? "amap-info-sharp-old" : "amap-info-sharp");
                    this.gU.style.display = "block"
                }
                g.F.$wa(e)
            }
        }, $U: function () {
            var a = this.get("isCustom"), b = this.get("showShadow");
            if (!a && b) {
                var a = this.gU, b = g.j.RI(this.lh), c = b.height - 23, d = b.width;
                if (g.l.ti || g.l.Zu) c = this.lh.childNodes[0].offsetHeight, d = this.lh.childNodes[0].offsetWidth + 26;
                b = "background-image:url(" + g.A.yb +
                    (g.l.ti ? "/theme/v1.3/iws.gif);" : "/theme/v1.3/iws.png);");
                a.innerHTML = "";
                var e = [], f;
                f = e[1] = {};
                f.height = 0.5 * c + 4;
                f.width = d;
                f.offsetX = 400;
                f.offsetY = 16;
                f.top = -f.height - 10 - 15;
                f.left = 23;
                f = e[2] = {};
                f.height = e[1].height;
                f.width = e[1].height;
                f.offsetX = 1075 - f.width;
                f.offsetY = e[1].offsetY;
                f.top = e[1].top;
                f.left = 23 + e[1].width;
                f = e[3] = {};
                f.height = 10;
                f.width = 22;
                f.offsetX = 30;
                f.offsetY = 445;
                f.top = -25;
                f.left = 23 + (g.l.Zu || g.l.ti ? 5 : 0);
                f = e[4] = {};
                f.height = 10;
                f.width = d / 2 - 15 - e[3].left - e[3].width;
                f.offsetX = 132;
                f.offsetY = 445;
                f.top =
                    -25;
                f.left = e[3].left + e[3].width;
                f = e[5] = {};
                f.height = 10;
                f.width = 70;
                f.offsetX = 80;
                f.offsetY = 445;
                f.top = -25;
                f.left = e[4].left + e[4].width;
                f = e[6] = {};
                f.height = 10;
                f.width = d - e[5].left - e[5].width;
                f.offsetX = 132;
                f.offsetY = 445;
                f.top = -25;
                f.left = e[5].left + e[5].width;
                f = e[7] = {};
                f.height = 10;
                f.width = 30;
                f.offsetX = 621;
                f.offsetY = 445;
                f.top = -25;
                f.left = d;
                f = e[8] = {};
                f.height = 15;
                f.width = 70;
                f.offsetX = 47;
                f.offsetY = 470;
                f.top = -15;
                f.left = d / 2 - 15;
                for (c = 1; 8 >= c; c += 1) d = g.j.create("div", a), f = [], f.push("position:absolute;"), f.push(b), f.push("top:" +
                    e[c].top + "px;"), f.push("left:" + e[c].left + "px;"), f.push("width:" + e[c].width + "px;"), f.push("height:" + e[c].height + "px;"), f.push("background-position:" + -e[c].offsetX + "px " + -e[c].offsetY + "px;"), d.style.cssText = f.join("")
            }
        }, cHa: function () {
        }, xm: function () {
            var a = this.map, b = this.$b, c = this.get("position"), d = this.get("anchor");
            if (a && b && c) {
                a = a.qs(c, this.get("altitude"));
                d && (this.lh.className = d + " amap-info-contentContainer");
                var e = g.j.RI(this.lh);
                if (g.l.ti || g.l.Zu) e.width = this.lh.childNodes[0].offsetWidth + 14;
                b = e.height;
                c = this.get("offset");
                this.get("isCustom");
                e = e.width;
                this.$b.style.left = Math.round(a.x - e / 2 + (c.x || 0)) + "px";
                this.$b.style.top = Math.round(a.y + (c.y || 0)) + "px";
                if (d) {
                    var f;
                    "center" == d ? (d = "center", f = "middle") : (f = d.split("-"), d = f[1], f = f[0]);
                    switch (f) {
                        case "middle":
                            this.$b.style.top = Math.round(a.y + b / 2 + (c.y || 0)) + "px";
                            break;
                        case "top":
                            this.$b.style.top = Math.round(a.y + b + (c.y || 0)) + "px"
                    }
                    switch (d) {
                        case "left":
                            this.$b.style.left = Math.round(a.x + (c.x || 0)) + "px";
                            break;
                        case "right":
                            this.$b.style.left = Math.round(a.x -
                                e + (c.x || 0)) + "px"
                    }
                }
                d = this.dna;
                if (this.LP && d.childNodes[0]) {
                    for (b = a = 0; b < d.childNodes.length; b += 1) a += d.childNodes[0].clientHeight || 0;
                    a > (this.get("size").height || d.clientHeight) ? this.LP.style.right = "20px" : this.LP.style.right = "5px"
                }
            }
        }, Dca: function () {
            var a = new g.G(2 - this.lh.offsetWidth / 2, 2 - this.lh.offsetHeight),
                b = this.get("offset") || new g.G(0, 0), c = this.get("anchor");
            if (c) {
                var a = this.lh.offsetWidth, d = this.lh.offsetHeight, e, f, h = 2 - a / 2, k = 2 - d;
                c && (c = c.split("-"), 2 === c.length ? (e = c[1], f = c[0]) : 1 === c.length && "center" ===
                    c[0] && (e = "center", f = "middle"));
                switch (e) {
                    case "left":
                        h = 2;
                        break;
                    case "right":
                        h = -a
                }
                switch (f) {
                    case "middle":
                        k = -d / 2;
                        break;
                    case "top":
                        k = -2
                }
                a = new g.G(h, k)
            }
            this.get("isCustom") || (a = a.add(new g.G(0, -23)));
            return a.add(b)
        }, altitudeChanged: function () {
            this.xm()
        }, NW: function () {
            if (this.get("position") && this.get("autoMove") && this.lh) {
                for (var a = this.map, b = new g.xd(this.lh.offsetWidth, this.lh.offsetHeight), c = a.qs(this.get("position"), this.get("altitude")).add(this.Dca()), d = c.add(b.uE()), e = a.get("size"), f = a.upa(),
                         h = 0, k = 0, l = 0; l < f.length; l += 1) {
                    var m = f[l], n = 0, p = 0;
                    0 === m[1] && 0 === m[2] ? (n = m[3] - (c.x + h), p = m[0] - (c.y + k), 0 < n && 0 < p && (Math.abs(n) < Math.abs(p) ? h += n : k += p)) : 0 === m[2] && 0 === m[3] ? (n = e.pj() - m[1] - (d.x + h), p = m[0] - (c.y + k), 0 > n && 0 < p && (Math.abs(n) < Math.abs(p) ? h += n : k += p)) : 0 === m[0] && 0 === m[3] ? (n = e.pj() - m[1] - (d.x + h), p = e.nj() - m[2] - (d.y + k), 0 > n && 0 > p && (Math.abs(n) < Math.abs(p) ? h += n : k += p)) : 0 === m[0] && 0 === m[1] && (n = m[3] - (c.x + h), p = e.nj() - m[2] - (d.y + k), 0 < n && 0 > p && (Math.abs(n) < Math.abs(p) ? h += n : k += p))
                }
                c = c.add(new g.G(h, k));
                d = d.add(new g.G(h,
                    k));
                l = f = 0;
                0 > c.x || b.pj() > e.pj() ? f = 20 - c.x : e.pj() < d.x && (f = e.pj() - d.x - 25);
                0 > c.y || b.nj() > e.nj() ? l = 5 - c.y : e.nj() < d.y && (l = e.nj() - d.y - 15);
                f += h;
                l += k;
                if (f || l) a.C.D = !0, a.C.panBy(f, l), a.C.D = !1
            }
        }, Rma: function () {
            this.get("closeWhenClickMap") && (this.map.h("clickstart", this.WZ, this, !1), this.map.h("clickend", this.VZ, this, !1))
        }, WZ: function () {
            this.ff.mi && (this.ff.D = !0, this.ff.getIsOpen() && (this.ff.MK = !0), this.ff.D = !1)
        }, VZ: function () {
            this.ff.mi && (this.ff.MK && (this.ff.D = !0, this.ff.close(), this.ff.D = !1), this.ff.MK = !1)
        },
        Tg: function () {
            this.$b && this.map && (this.ff.MK = !1, this.get("closeWhenClickMap") && (this.map.H("clickstart", this.WZ, this), this.map.H("clickend", this.VZ, this)), this.get("retainWhenClose") ? this.map.Fl.appendChild(this.$b) : (this.$b.parentNode === this.map.Ta.w && this.map.Ta.w.removeChild(this.$b), this.ff.w = null), this.map = null, this.ff.mi = !1, this.Yb.q("close", {
                type: "close",
                target: this.Yb
            }))
        }, YAa: function () {
            if (!this.get("isCustom")) return this.lh.offsetWidth;
            for (var a = this.di, b = a.firstChild, c = a.lastChild; b && c &&
            b.style && c.style && b === c;) a = b, b = a.firstChild, c = a.lastChild;
            a = g.j.Xc(a, "width");
            return a = parseInt(a.replace("px", ""), 10)
        }, renderChanged: function () {
            this.xm()
        }, positionChanged: function () {
            this.map && this.$b && (this.xm(), this.NW())
        }, anchorChanged: function () {
            this.positionChanged()
        }, offsetChanged: function () {
            this.positionChanged()
        }, contentChanged: function () {
            this.dt();
            this.$U();
            this.xm()
        }, sizeChanged: function () {
            this.dt();
            this.$U();
            this.xm()
        }
    });
    g.Ca = {};
    g.Ca.Ge = g.aa.extend({
        ka: [g.va, g.Re], r: function () {
        }, Lu: function () {
            var a = this.od();
            a.kh || (a.kh = g.I.ri(a));
            return a.kh
        }, lb: function () {
            return new this.r(this.wa)
        }, VQ: function () {
            return this.wa
        }, setCoords: function (a) {
            this.rwa(a)
        }, rwa: function (a) {
            this.sv = this.od();
            this.pg = null;
            if (g.Ca.zc && this instanceof g.Ca.zc) {
                var b = a.length;
                this.Cf = Array(b);
                for (var c, d, e = 0; e < b; e += 1) if (c = a[e], d = new g.Ca.vL(c), this.Cf[e] = d, 0 === e) {
                    if (0 === c.length) break;
                    d.$p(c) || c.reverse()
                } else 0 !== c.length && d.$p(c) && c.reverse()
            } else this.wa = a
        }
    });
    g.Ca.He = g.extend({}, {
        Bw: "point",
        rL: "linestring",
        PV: "linearring",
        kF: "polygon",
        CL: "multipoint",
        BL: "multilinestring",
        hF: "multipolygon",
        Cza: "geometrycollection"
    });
    g.Zh = g.aa.extend({
        ka: [g.va, g.Re], r: function (a) {
            a = a || {};
            a.$A && (this.$A = a.$A);
            a.tN && (this.tN = a.tN);
            a.fZ && (this.fZ = a.fZ);
            this.map = a.map;
            this.Zl = a.WM || g.a.ub(this);
            this.name = a.name || "";
            this.ge = !1;
            this.set("visible", !0, !0);
            this.$T(a.fa);
            this.ml = a.JK;
            this.style = a.style
        }, Una: function () {
            this.name = this.map = null;
            this.style = this.ml = this.pr = this.t5 = this.fa = this.fa.Na = null;
            this.rl();
            this.pi()
        }, qqa: function () {
            return this.ml
        }, Fwa: function (a) {
            this.ml = a;
            this.zIndex = this.ml[0].yk || this.zIndex
        }, cc: function () {
            return this.fa
        },
        $T: function (a) {
            a && (this.fa = a, this.W("coords", a, !0), this.$A || this.tN) && (a.W("radius", this), a.W("center", this), a.W("resolution", this), a.W("strokeWeight", this))
        }, setStyle: function (a) {
            this.Fwa(a);
            this.Yr()
        }, coordsChanged: function () {
            this.Yr()
        }, radiusChanged: function () {
            this.fa.sv = this.fa.od();
            this.fa.pg = null;
            this.Yr()
        }, Yr: function (a) {
            this.set("feature", {target: this, Lna: a, sv: this.fa.sv || this.fa.od(), hta: this.fa.od()});
            this.fa.sv = this.fa.od()
        }, visibleChanged: function () {
            this.Yr()
        }, EDa: function (a) {
            for (var b =
                0; b < this.ml.length; b += 1) {
                var c = this.ml[b];
                if (a.cb(c.Ux(this))) return c
            }
        }, Cpa: function () {
            var a = this.cc(), b = [];
            a.si() === g.Ca.He.kF || a.si() === g.Ca.He.hF ? b.push(new g.style.se.zc({
                fillColor: "#78cdd1",
                be: 0.2,
                strokeColor: "#122e29",
                mb: 0.5,
                nc: 1
            })) : a.si() === g.Ca.He.rL || a.si() === g.Ca.He.PV || a.si() === g.Ca.He.BL ? b.push(new g.style.se.gp({
                color: "#888888",
                width: 1,
                zIndex: 10
            })) : a.si() !== g.Ca.He.Bw && a.si() !== g.Ca.He.CL || b.push(new g.style.se.ai({
                url: g.A.yb + "/theme/v1.3/markers/0.png", width: 36, height: 36, rotation: 0,
                uHa: -12, wHa: -36, zIndex: 100
            }));
            return b
        }
    });
    g.Zh.xza = "geometry";
    g.Ca.Bg = g.Ca.Ge.extend({
        r: function (a, b) {
            this.wa = a;
            this.rj = b;
            this.pg = null
        }, od: function () {
            if (!this.pg) {
                var a = this.wa[0], b = this.wa[1];
                if (this.rj) this.pg = [a, b, a, b]; else {
                    var c = this.get("radius"), d = this.get("resolution") * this.get("strokeWeight") || 0,
                        c = c ? c / Math.cos(Math.PI * this.get("center").P / 180) : 0;
                    this.pg = [a - c - d, b - c - d, a + c + d, b + c + d]
                }
            }
            return this.pg
        }, si: function () {
            return g.Ca.He.Bw
        }
    });
    g.M = {canvas: {}, Yd: {}, Oe: {}, Ce: {}};
    g.M.Tb = g.aa.extend({
        ka: [g.va, g.Re], r: function (a, b) {
            this.f = a;
            this.rj = a.T.rj;
            this.J = b;
            this.e = b.e;
            this.W("display", b)
        }, Uj: function () {
            this.Es && this.Es();
            this.rl();
            this.e = this.J = this.f = null
        }, Nu: function (a, b, c, d) {
            var e = this.zoom;
            c = [];
            var f = this.f;
            if (Math.floor(e) !== e) b(c, f); else {
                a = [a.x, a.y];
                if (f.gm) {
                    for (var e = f.Sg, h = !0, k = [], l = 0; l < e.length; l += 1) {
                        var m = e[l].Ig;
                        if (m) if (m.parentNode && m.parentNode.parentNode && this.J && m.parentNode.parentNode !== this.J.Fl && "none" !== m.parentNode.style.display) {
                            var n = g.j.wo(m), m =
                                n[0], n = n[1];
                            if (m && n) {
                                var p = Math.max(Math.abs(e[l].get("offset").x), Math.abs(e[l].get("offset").y)) + Math.max(m, n);
                                f.of = Math.max(f.of, p);
                                f.cg = Math.max(f.cg, p);
                                e[l].width = m;
                                e[l].height = n
                            } else h = !1, k.push(e[l])
                        } else h = !1, k.push(e[l])
                    }
                    h ? (f.gm = !1, f.Sg = []) : f.Sg = k
                }
                e = Math.max(f.of, f.Uy || 0) * this.S;
                h = Math.max(f.cg, f.Uy || 0) * this.S;
                k = 0;
                f.Ty && (k = f.Ty / Math.cos(Math.PI * this.e.get("center").P / 180));
                h = Math.max(h, k || 0);
                e = Math.max(e, k || 0);
                if (e = f.mn([a[0] - e, a[1] - h, a[0] + e, a[1] + h])) {
                    for (var q in e) if (e.hasOwnProperty(q) &&
                        (h = e[q], h.get("visible") && !h.get("noSelect"))) if (k = h.cc(), k instanceof g.Ca.Bg) if (this.rj) {
                        l = this.f.vm;
                        l instanceof Array && (l = "number" === typeof h.eb.style && l[h.eb.style] ? l[h.eb.style] : l[0]);
                        var m = l.size.width * this.S, n = l.size.height * this.S, p = l.anchor.x * this.S,
                            r = l.anchor.y * this.S, k = k.wa, s = l.rotation_, u = [a[0], a[1]];
                        if (s) {
                            var v = (a[0] - k[0]) / this.S, w = (a[1] - k[1]) / this.S, t = s, s = Math.cos(-t),
                                x = Math.sin(-t), t = v * s - w * x, v = v * x + w * s;
                            u[0] = k[0] + t * this.S;
                            u[1] = k[1] + v * this.S
                        }
                        m = g.I.rP([[u[0] - m + p, u[1] - n + r], [u[0] + p, u[1] +
                        r]]);
                        g.I.Rd(m, k) && c.push(h)
                    } else if ("undefined" !== typeof k.get("radius")) l = k.wa, l = new g.G(l[0], l[1]), m = new g.G(a[0], a[1]), k = k.get("radius"), "px" === h.get("unit") ? m.we(l) / Math.pow(2, 20 - this.zoom) < k && c.push(h) : m.we(l) * Math.cos(h.get("center").P * Math.PI / 180) <= k / this.gq * Math.pow(2, 20 - this.zoom) && c.push(h); else if ("AMap.Text" == h.Cp) l = h.get("params"), l.visible && h.ca && g.j.jD(d, h.ca, "amap-markers") && c.push(h); else {
                        if (l = h.get("params"), l.visible && h.ca) if (l.shape) for (k = k.wa, s = l.Ap % 360, u = [a[0], a[1]], s && (v = (a[0] -
                            k[0]) / this.S, w = (a[1] - k[1]) / this.S, t = Math.PI * s / 180, s = Math.cos(-t), x = Math.sin(-t), t = v * s - w * x, v = v * x + w * s, u[0] = k[0] + t * this.S, u[1] = k[1] + v * this.S), m = h.width * this.S, n = h.height * this.S, p = l.offset.x * this.S, r = l.offset.y * this.S, m = g.I.rP([[u[0] - m - p, u[1] - n - r], [u[0] - p, u[1] - r]]), k[0] instanceof Array || (k = [k]), n = k.length - 1; 0 <= n; n -= 1) {
                            if (g.I.Rd(m, k[n])) {
                                l.shape ? this.iD(h, u, k) && c.push(h) : c.push(h);
                                break
                            }
                        } else g.j.jD(d, h.ca, "amap-markers") && c.push(h)
                    } else k.Rd ? k.Rd(a) && c.push(h) : k.ey && 1.8 * k.ey(a) <= h.get("strokeWeight") *
                        this.S && c.push(h);
                    this.rj ? c.sort(function (a, b) {
                        return a.Zl > b.Zl ? -1 : 1
                    }) : c.sort(function (a, b) {
                        return a.get("isTop") ? -1 : b.get("isTop") ? 1 : a.get("zIndex") > b.get("zIndex") || a.get("zIndex") === b.get("zIndex") && a.Zl > b.Zl ? -1 : 1
                    });
                    b(c, f)
                } else b([], f)
            }
        }, iD: function (a, b, c) {
            var d = (b[0] - c[0][0]) / this.S;
            b = (b[1] - c[0][1]) / this.S;
            a = a.get("params");
            c = a.offset;
            var d = [d - c.x, b - c.y], e;
            a = a.shape;
            if ("circle" === a.B.type) {
                if (b = a.B.coords[0], c = a.B.coords[1], Math.sqrt((d[0] - b) * (d[0] - b) + (d[1] - c) * (d[1] - c)) <= a.B.coords[2]) return !0
            } else {
                if ("poly" ===
                    a.B.type) return e = a.B.coords, e = this.LH(e), g.wd.Rd(d, e);
                if ("rect" === a.B.type) return e = a.B.coords, a = e[0], b = e[1], c = e[2], e = e[3], e = [[a, b], [c, b], [c, e], [a, e]], g.wd.Rd(d, e)
            }
            return !1
        }, LH: function (a) {
            for (var b = [], c = 0; c / 2 < a.length / 2; c += 2) b.push([a[c], a[c + 1]]);
            return b
        }, B3: function (a, b, c, d, e, f, h) {
            var k = ["position:absolute;"];
            k.push("top:" + Math.round(c) + "px;");
            k.push("left:" + Math.round(b) + "px;");
            k.push("width:" + Math.round(d) + "px;");
            k.push("height:" + Math.round(e) + "px;");
            1 > f && ("opacity" in a.style ? (k.push("opacity"),
                k.push(":"), k.push(f), k.push(";")) : 8 <= document.documentMode ? (k.push("-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(opacity="), k.push(Math.ceil(100 * f)), k.push(")';")) : (k.push("filter:alpha(opacity="), k.push(Math.ceil(100 * f)), k.push(");")));
            k.push("z-index:" + h + ";");
            k.join("");
            g.j.W7(a, k.join(""))
        }
    });
    g.M.Kb = g.aa.extend({
        ka: [g.va, g.Re], r: function (a) {
            this.e = a;
            this.type = "2D";
            this.pk = g.a.hc(a.get("zoom"), 1);
            this.Fl = a.Fl;
            this.K = a.Ta.o;
            this.W("display", a);
            this.W("rotateEnable", a);
            this.W("style", a);
            this.W("zoom", a);
            this.W("hightlight", a)
        }, MS: function (a) {
            this.ue = a || g.a.Ok("ff" + this.e.ue.slice(1))
        }, Nu: function (a, b, c, d, e) {
            function f(a, d) {
                a.length && (k[g.a.indexOf(b, d)] = a);
                l -= 1;
                0 >= l && (c(k), l = 0)
            }

            for (var h = b.length, k = [], l = 0, m, n = [], p = 0; p < h; p += 1) m = b[p], m instanceof g.o.ad && m.get("visible") && (n.push(this.Pu(m)),
                l += 1);
            for (h = 0; h < n.length; h += 1) n[h].Nu(a, f, d, e)
        }
    });
    g.s2 = {
        PC: function (a, b, c) {
            for (var d = null, e = null, f = 0, h = 0, k = 0, l = b.length; k < l; k++) {
                var m = b[k];
                if (m < a) d = c[m], f = m; else {
                    e = c[m];
                    h = m;
                    break
                }
            }
            null === d ? (d = e, f = h) : null === e && (e = d, h = f);
            return {gz: f, HJ: h, pq: d, zD: e}
        }, tqa: function (a) {
            var b = this, c = g.a, d = [], e = {};
            c.Nb(a.nodes, function (a) {
                !1 !== a.value && null !== a.value && (e[a.zoom] = g.A.Fc + "://" + a.value, d.push(a.zoom))
            });
            return function (a) {
                a = c.hc(a, 1);
                void 0 === e[a] && (e[a] = b.PC(a, d, e).pq);
                return e[a]
            }
        }, Zpa: function (a) {
            var b = this, c = g.a, d = [], e = {}, f = a.transitional;
            c.Nb(a.nodes,
                function (a) {
                    null !== a.value && !1 !== a.value && (e[a.zoom] = a.value, d.push(a.zoom))
                });
            return function (a) {
                a = c.hc(a, 1);
                if (void 0 === e[a]) {
                    var k = b.PC(a, d, e);
                    e[a] = f && "none" !== f && k.HJ !== k.gz && k.pq !== k.zD ? c.V3(k.pq, k.zD, (a - k.gz) / (k.HJ - k.gz), f) : k.pq
                }
                return e[a]
            }
        }, lpa: function (a) {
            var b = this, c = g.a, d = [], e = {};
            c.Nb(a.nodes, function (a) {
                null !== a.value && (e[a.zoom] = a.value, d.push(a.zoom))
            });
            return function (a) {
                a = c.hc(a, 1);
                void 0 === e[a] && (e[a] = b.PC(a, d, e).pq);
                return e[a]
            }
        }, Ypa: function (a) {
            var b = this, c = g.a, d = [], e = {};
            c.Nb(a.nodes,
                function (a) {
                    null !== a.value && (e[a.zoom] = a.value, d.push(a.zoom))
                });
            return function (a) {
                a = c.hc(a, 1);
                void 0 === e[a] && (e[a] = b.PC(a, d, e).pq);
                return e[a]
            }
        }, tpa: function (a, b, c) {
            var d = this, e = g.a, f = [], h = {}, k = a.transitional;
            e.Nb(a.nodes, function (a) {
                a.value && (h[a.zoom] = e.nla(a.value, c ? "rgba" : "webgl"), f.push(a.zoom))
            });
            return function (a) {
                var b = null;
                a = e.hc(a, 1);
                if (void 0 === h[a]) {
                    var b = d.PC(a, f, h), n = b.pq;
                    if (k && "none" !== k && b.gz !== b.HJ && b.pq.join("") !== b.zD.join("")) for (var n = n.slice(0), p = (a - b.gz) / (b.HJ - b.gz), q = 0, r =
                        b.zD.length; q < r; q++) n[q] = e.V3(b.pq[q], b.zD[q], p, k);
                    h[a] = n
                }
                b = h[a];
                return c && b ? "rgba(" + b.join(",") + ")" : b || ""
            }
        }, ND: function (a, b, c, d) {
            var e = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : {}, f;
            for (f in c) if (c.hasOwnProperty(f)) {
                var h = c[f];
                void 0 !== b[h] ? (b[h].nodes && 1 < b[h].nodes.length && b[h].nodes.sort(function (a, b) {
                    return a.zoom - b.zoom
                }), a[f] = e.xra ? {
                    Oe: d.call(this, b[h], c[f]),
                    canvas: d.call(this, b[h], c[f], !0)
                } : d.call(this, b[h], c[f])) : e.wra && (a[f] = !0)
            }
        }, zr: function (a, b) {
            for (var c = [], d = 0, e = a.length; d <
            e; d += 2) {
                var f = 0,
                    f = "str" === b ? g.a.hc(parseInt(a.substr(d, 2), 16) / (0 === d ? 255 : 1), 3) : g.a.hc(parseInt(a.substr(d, 2), 16) / 255, 3);
                c.push(f)
            }
            return c.length ? (c.push(c.shift()), "str" === b ? "rgba(" + c.join(",") + ")" : c) : ""
        }, I6: function (a, b, c) {
            if (b[c]) console.log("customType repeat!!", c); else {
                var d = {}, e = {visible: "visible", iU: "showLabel", ok: "showIcon"},
                    f = [["color", {color: "color"}, {opacity: "opacity"}], ["fillColor", {fillColor: "fillColor"}, {be: "fillOpacity"}], ["strokeColor", {strokeColor: "strokeColor"}, {mb: "strokeOpacity"}],
                        ["textFillColor", {mxa: "textFillColor"}, {nxa: "textFillOpacity"}], ["textStrokeColor", {pxa: "textStrokeColor"}, {qxa: "textStrokeOpacity"}], ["backgroundColor", {backgroundColor: "backgroundColor"}, {wla: "backgroundOpacity"}]],
                    h = {fontSize: "fontSize"};
                if (a.styles) {
                    a = a.styles;
                    this.ND(d, a, e, this.lpa, {wra: !0});
                    this.ND(d, a, h, this.Ypa, {hEa: !0});
                    for (var h = 0, k = f.length; h < k; h++) e = f[h], a[e[0]] ? this.ND(d, a, e[1], this.tpa, {xra: !0}) : this.ND(d, a, e[2], this.Zpa);
                    a.texture && (this.ND(d, a, {Ua: "texture"}, this.tqa), d.ld = [], g.a.Nb(a.texture.nodes,
                        function (a) {
                            a.value && d.ld.push(g.A.Fc + "://" + a.value)
                        }))
                } else {
                    for (var l in e) if (e.hasOwnProperty(l)) {
                        var m = e[l];
                        d[l] = void 0 === a[m] ? !0 : a[m]
                    }
                    e = 0;
                    for (l = f.length; e < l; e++) {
                        var n = f[e], m = g.a.keys(n[1])[0], p = n[1][m], q = g.a.keys(n[2])[0], n = n[2][q];
                        void 0 !== a[p] ? d[m] = {canvas: this.zr(a[p], "str"), Oe: this.zr(a[p])} : d[q] = a[n]
                    }
                    for (k in h) h.hasOwnProperty(k) && void 0 !== a[k] && (d[k] = a[k]);
                    a.texture && (d.Ua = g.A.Fc + "://" + a.texture)
                }
                b[c] = d
            }
        }, bT: function (a, b, c, d) {
            if (a) for (var e in a) if (a.hasOwnProperty(e) && g.a.dk(a[e], "object")) {
                var f =
                    a[e], h = e;
                c && (h = c + ":" + e);
                if (f.detailedType) this.I6(f, b, h), this.bT(f.detailedType, b, h, f); else if (f.subType) this.bT(f.subType, b, h); else {
                    if (void 0 !== f.code) {
                        for (var k in d) d.hasOwnProperty(k) && !g.a.ka(["isDetailed", "detailedType", "styles"], k) && void 0 === f[k] && void 0 !== d[k] && (f[k] = d[k]);
                        h = c + ":" + f.code
                    }
                    this.I6(f, b, h)
                }
            }
        }, WU: function (a) {
            if (!this.Yx || this.Yx.zoom != a) {
                var b = g.a.Mh, c = {zoom: a}, d;
                for (d in this.Rf) if (this.Rf.hasOwnProperty(d)) {
                    var e = this.Rf[d];
                    c[d] = {};
                    for (var f in e) if (e.hasOwnProperty(f)) {
                        var h =
                            e[f];
                        h ? h.Oe ? (c[d][f] = {}, b(h.Oe) ? c[d][f].Oe = h.Oe(a) : c[d][f].Oe = h.Oe, b(h.canvas) ? c[d][f].canvas = h.canvas(a) : c[d][f].canvas = h.canvas) : b(h) ? c[d][f] = h(a) : c[d][f] = h : c[d][f] = h
                    }
                }
                this.Yx = c
            }
        }, styleChanged: function (a) {
            if (this.e.C.wi) {
                a = a || this.get("style");
                this.em.sA || (this.em = g.a.bind(this.em, this), this.Sp = g.a.bind(this.Sp, this), this.em.sA = !0);
                var b = g.a;
                if (a) {
                    var c = {};
                    this.bT(a, c);
                    this.Rf = c
                } else this.Rf = null;
                var d, e, f, h;
                this.Rf && (d = this.Rf["regions:land"], e = this.Rf.water, f = this.Rf.sky, h = this.Rf.buildings);
                var k, l, m, n, p;
                a = this.pk;
                if (d) {
                    c = "rgba(0, 0, 0, 0)";
                    if (d.visible) {
                        var q = this.Sp(b.G7(this.e.ue.substr(1)), d.opacity, d.color, !0, a);
                        q && (c = this.Pz(q, d.visible, "rgba(0, 0, 0, 0)"), q = this.em(b.Ns(this.e.ue.substr(1)), d.opacity, d.color, !0, a), k = this.Pz(q, d.visible))
                    }
                    this.e.vu = c
                } else this.e.vu = "";
                e && e.visible && (l = this.em(b.Ns(this.e.qH.substr(1)), e.opacity, e.color, !0, a), l = this.Pz(l, e.visible));
                f && f.visible && (m = this.em(b.Ns(this.e.GB.substr(1)), void 0, f.color, !0, a), m = this.Pz(m, f.visible));
                h && (h.visible ? (n =
                    this.em(b.Ok(this.e.DF[0]), void 0, h.fillColor, !0, a), n = this.Pz(n, h.visible), p = this.em(b.Ok(this.e.DF[1]), void 0, h.strokeColor, !0, a), p = this.Pz(p, h.visible)) : (n = [1, 1, 1, 0], p = [1, 1, 1, 0]));
                this.MS && this.MS(k, l, m, [n, p]);
                this.v9 ? this.v9(this.Rf) : this.set("display");
                delete this.Yx;
                this.WU(a)
            }
        }, Pz: function (a, b) {
            var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [0, 0, 0, 0], d = g.a.Mh;
            if (d(a) && d(b)) {
                var e = a;
                a = function (a) {
                    return b(a) ? e(a) : c
                }
            }
            return a
        }, Sp: function (a, b, c, d, e) {
            if (a) {
                if (void 0 !== b) return a =
                    a.split(","), c = b, "function" === typeof b && (c = b(e)), a[3] = g.a.hc(c, 3) + ")", a.join(",");
                if (c) return "function" === typeof c.canvas ? d ? c.canvas : c.canvas(e) : c.canvas
            }
            return a
        }, em: function (a, b, c, d, e) {
            if (a) {
                if (b) return c = b, "function" === typeof b && (c = b(e)), [a[0], a[1], a[2], g.a.hc(c, 3)];
                if (c) return "function" === typeof c.Oe ? d ? c.Oe : c.Oe(e) : c.Oe
            }
            return a
        }, LI: function (a, b, c) {
            var d = this.Rf;
            if (d) {
                this.Yx && c && c == this.Yx.zoom && (d = this.Yx);
                if (b || 0 === b) if (b = d[a + ":" + b]) return b;
                return d[a]
            }
        }, cm: function (a, b, c, d, e) {
            var f = null,
                h = a;
            d = d ? this.Sp : this.em;
            e = e || this.pk;
            if (f = this.LI(b, void 0, e)) if ("function" === typeof f.visible && !f.visible(e) || !1 === f.visible) h = ""; else {
                var h = 1, k = "";
                if (c) if (f.fillColor || f.be) h = f.be, k = f.fillColor; else {
                    if (f.color || f.opacity) h = f.opacity, k = f.color
                } else if (f.strokeColor || f.mb) h = f.mb, k = f.strokeColor; else if (f.color || f.opacity) h = f.opacity, k = f.color;
                h = d(a, h, k, !1, e)
            }
            this.hs === b && (h = this.Ou(h || a));
            return h
        }, bs: function (a, b, c, d) {
            c = c ? this.Sp : this.em;
            var e = null, f = a;
            d = d || this.pk;
            (e = this.LI(b, void 0, d)) && (f = "function" ===
            typeof e.visible && !e.visible(d) || !1 === e.visible ? "" : c(a, e.opacity, e.color, !1, d));
            this.hs === b && (f = this.Ou(f || a));
            return f
        }, qy: function (a, b, c, d, e, f) {
            var h = a, k = b, l = c, m = !0, n = !0, p, q = 1;
            f = f || this.pk;
            var r = this.LI(d, e, f);
            r && ("function" === typeof r.visible && !r.visible(f) || !1 === r.visible || "function" === typeof r.iU && !r.iU(f) || !1 === r.iU ? (n = m = !1, h = k = l = "") : (h = this.Sp(a, r.nxa, r.mxa, !1, f), k = this.Sp(b, r.qxa, r.pxa, !1, f), l = this.Sp(c, r.wla, r.backgroundColor, !1, f), m = "function" === typeof r.ok ? r.ok(f) : r.ok, r.fontSize && (p = "function" ===
            typeof r.fontSize ? r.fontSize(f) : r.fontSize, p = 12 <= p ? p : 12, p = 22 >= p ? p : 22), p && g.l.Mc && (p *= 2)));
            f = !1;
            this.hs === d ? f = !0 : void 0 !== e && this.hs === d + "-" + e && (f = !0);
            f && (h = this.Ou(h || a), k = this.Ou(k || b), l = this.Ou(l || c), q = 1 - 1.6 * this.aD, n = m = !0);
            return [h, k, l, m, n, q, p]
        }, py: function (a, b, c, d, e) {
            var f = null, h = a, k = b;
            d = d ? this.Sp : this.em;
            var l = e || this.pk;
            if (f = this.LI(c, void 0, e)) "function" === typeof f.visible && !f.visible(l) || !1 === f.visible ? h = k = "" : (h = d(a, f.be, f.fillColor, !1, l), k = d(b, f.mb, f.strokeColor, !1, l));
            this.hs === c && (b = k ||
                b, h = this.Ou(h || a), k = this.Ou(b));
            return [h, k]
        }
    };
    g.M.Kb.zb(g.s2);
    g.M.canvas.Kb = g.M.Kb.extend({
        r: function (a) {
            arguments.callee.la.apply(this, arguments)
        }, Pu: function (a) {
            if (!a.M) {
                var b = a.Tl(this);
                b && !b.ona && (a.M = b)
            }
            return a.M
        }, mc: function (a) {
            var b = this.e.j3();
            b && this.vT !== b && this.e.C.wi && (this.e.V7(b), this.vT = b);
            this.e.Ta.Fr.style.cssText = "";
            var c = a.za, b = a.R, d = this.e.C.get("features"), e = a.size.width, f = a.size.height;
            this.pk = "vw" === this.e.C.Ie.baseRender ? g.a.hc(b.zoom, 1) : a.R.De;
            this.S = b.S;
            if (!this.La || 1E4 < Math.abs(b.jb.x - this.La.x) / this.S || 1E4 < Math.abs(b.jb.y - this.La.y) /
                this.S) this.La = b.jb;
            this.La.x - b.jb.x < -g.a.Ea / 2 ? this.La = new g.G(this.La.x + g.a.Ea, this.La.y) : this.La.x - b.jb.x > g.a.Ea / 2 && (this.La = new g.G(this.La.x - g.a.Ea, this.La.y));
            for (var h = 0; h < c.length; h += 1) {
                var k = c[h], l = this.Pu(k), m = c[h].he();
                if (l && l.f) if (!m.visible || k.AD || m.hb[0] > b.zoom || m.hb[1] < b.zoom || k.ea && 0 === k.ea.length) {
                    if (l = l.oj()) if (l.length) for (m = 0; m < l.length; m += 1) l[m].parentNode === this.K && this.K.removeChild(l[m]); else l.parentNode === this.K && this.K.removeChild(l)
                } else if (this.gS(k, d)) {
                    l.mc(a, m);
                    l.sn &&
                    (a.Uf = l.Uf);
                    var k = l.oj(), n, p, q = l.transform;
                    if (!q || !k || l.Pg && !this.e.C.Ka) c[h].Yk && k.parentNode !== this.K && (this.K.appendChild(k), c[h].Lb = k); else {
                        c[h].Lb = k;
                        k.length || (k = [k], q = [q]);
                        for (var r = 0; r < k.length; r += 1) if (n = k[r], p = q[r], !p.By) {
                            var s = p.translate.x, u = p.translate.y;
                            c[h].kJ || (s = g.a.hc(s, 2), u = g.a.hc(u, 2));
                            var v = p.scale;
                            1E-5 > Math.abs(s) && (s = 0);
                            1E-5 > Math.abs(u) && (u = 0);
                            var w = [];
                            w.push("position:absolute");
                            w.push("z-index:" + (p.yk || c[h].get("zIndex")));
                            c[h].AC ? (w.push("top:" + Math.floor(f / 2 + u) + "px"), w.push("left:" +
                                Math.floor(e / 2 + s) + "px")) : n.Z4 ? (w.push("height:" + n.height * v + "px"), w.push("width:" + n.width * v + "px"), w.push("top:" + (f / 2 - u * v) + "px"), w.push("left:" + (e / 2 - s * v) + "px")) : (1 !== v && (w.push(g.j.Ys[g.j.jg] + "-origin:" + s + "px " + u + "px"), w.push(g.j.Ys[g.j.jg] + ":scale3d(" + v + "," + v + ",1)")), w.push("top:" + Math.floor(f / 2 - u) + "px"), w.push("left:" + Math.floor(e / 2 - s) + "px"), l.uj && (w.push("height:" + n.height + "px"), w.push("width:" + n.width + "px")));
                            l.kJ || 1 === m.opacity || "number" !== typeof m.opacity || w.push(g.j.H3(n, m.opacity));
                            n.parentNode !==
                            this.K && this.K.appendChild(n);
                            g.j.W7(n, w.join(";"))
                        }
                    }
                }
            }
            a = this.e.Ta.Fr;
            k = this.e.Ta.o;
            c = this.e.Ta.w;
            g.j.jg && "number" === typeof b.rotation && 0 !== b.rotation ? (a.style[g.j.jg + "Origin"] = e / 2 + "px " + f / 2 + "px", a.style[g.j.jg] = "rotate(" + b.rotation + "deg)", a.style.overflow = "visible", k.style.overflow = "visible", c.style.overflow = "visible") : (a.style.cssText = "", k.style.cssText = "-webkit-transform: translateZ(0);", c.style.cssText = "");
            this.e.Lv = !1
        }, gS: function (a, b) {
            if ("all" === b || void 0 === a.Pl) return !0;
            for (var c = 0, d = a.Pl.length; c <
            d; c++) if (g.a.ka(b, "region" === a.Pl[c] ? "bg" : a.Pl[c])) return !0;
            return !1
        }, zoomChanged: function () {
            var a = this.e.get("zoom");
            this.pk = "vw" === this.e.C.Ie.baseRender ? g.a.hc(a, 1) : Math.round(a);
            this.Rf && this.WU(this.pk)
        }
    });
    g.M.Mi = g.M.Tb.extend({
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.W("reload", a, !0);
            var c = a.T.get("cacheSize");
            if (this.e && this.e.C) {
                var d = this.e.C.get("tileCacheSize");
                d && 0 < d && (c = d)
            }
            this.ra = new g.ig(c);
            var e = this;
            this.ra.OJ.f1(function (a) {
                e.DA(a)
            });
            this.ra.$B = function (a) {
                return a.Sb ? (a.Sb.cj -= 1, 0 == a.Sb.cj && (a.gv = !1), delete a.Sb, !0) : a.gv ? a.cj ? !1 : !0 : !0
            };
            this.bd = 1;
            this.On = 50;
            this.PW = !0;
            this.f.ra = this.ra;
            this.km = new g.dF(6, null, a.wQ);
            new g.dF(5, null, a.wQ)
        }, Es: function () {
            this.clear();
            this.Zg = null;
            this.ra.clear();
            this.ra.$B = null;
            this.ra = this.ra.OJ.yF = null;
            this.Gc && (this.Gc.H("tiles", this.GD, this), this.Gc.H("ack", this.FD, this), this.Gc.H("disable", this.DD, this), this.Gc = null);
            this.uj && g.F.H(this.Ra, "webglcontextlost", this.CD, this);
            this.e.H("zoomend", this.Xj, this);
            this.e.H("moveend", this.Xj, this)
        }, reloadChanged: function () {
            this.f && (this.f.Ka = !1);
            this.ra.clear();
            this.reload = !0;
            this.set("display")
        }, sh: function (a, b, c) {
            function d(b) {
                a.loaded = !0;
                e.f && (a.status = "loaded", a.ya = !0, a.Me = b, e.set("display",
                    0), "function" === typeof c && c())
            }

            var e = this;
            a.status = "loading";
            this.f.no && this.f.no.call(this, a, d, function () {
                a.loaded = !0;
                e.f && (a.status = "loaded", a.ya = !0, "function" === typeof c && c())
            })
        }, VGa: function (a, b, c, d) {
            var e = [];
            c = c || 18;
            b = Math.pow(2, b - c);
            for (var f = 0; f < a.length; f += 1) {
                var h = a[f].ta, k = Math.floor(h.x / b), h = Math.floor(h.y / b);
                if (d) {
                    if (k = c + "/" + k + "/" + h, (h = this.ra.get(k)) && "loaded" == h.status) continue
                } else h = new g.Uq(c, k, h), k = h + "", h = new g.ob(h);
                !e[k] && h && (e.push(h), e[k] = 1)
            }
            return e
        }, qI: function (a, b) {
            var c =
                this, d = this;
            if (this.f.bH) {
                var e, f, h, k, l, m, n, p = function () {
                    var p = 0;
                    for (e = a.length - 1; 0 <= e; e -= 1) f = a[e], p += f.length;
                    if (0 == p) return b.call(c, a), {YK: void 0};
                    d.DU = a;
                    for (e = a.length - 1; 0 <= e; e -= 1) for (f = a[e], h = [], k = [], f.wT = h, f.rv = k, l = f.length - 1; 0 <= l; l -= 1) m = f[l], n = m.ta, c.f.e.Ah.Az(n.x, n.y, n.z, function () {
                        var c = l;
                        return function (e) {
                            e ? h.push(f[c]) : k.push(f[c]);
                            p -= 1;
                            if (0 == p) {
                                for (e = a.length - 1; 0 <= e; e -= 1) {
                                    var l = a[e];
                                    a[e] = l.wT;
                                    if (l.rv) for (var m = l.rv.length - 1; 0 <= m; m -= 1) {
                                        var n = l.rv[m];
                                        n.status = "loaded";
                                        n.loaded = !0;
                                        n.ya =
                                            !0
                                    }
                                }
                                b.call(d, a)
                            }
                        }
                    }())
                }();
                if ("object" === typeof p) return p.YK
            } else b.call(this, a)
        }, Xv: function (a, b, c) {
            if (a = this.ra.get(a + "/" + b + "/" + c)) {
                if (a.gv) return a;
                if (a.Sb) return a.Sb;
                a.gv = !0;
                a.cj = 0;
                return a
            }
        }, NI: function (a) {
            var b = a.ta;
            a = b.x;
            var c = b.y, b = b.z, d = Math.pow(2, b), e = (a + d) % d, f = e + d, d = e - d, h = null;
            e !== a && (h = this.Xv(b, e, c));
            h || d === a || (h = this.Xv(b, d, c));
            h || f === a || (h = this.Xv(b, f, c));
            return h
        }, vn: function (a) {
            var b = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1;
            if (a.length) if (this.lK) this.FJ = !0; else {
                for (var c =
                    a.length - 1; 0 <= c; c -= 1) {
                    var d = a[c];
                    if (d.length) for (var e = Math.pow(2, 20 - d[0].ta.z), c = d.length - 1; 0 <= c; c--) {
                        var f = d[c], h = f.ta;
                        h.S = e;
                        f.sa = {};
                        f.hn = 0;
                        if (10 > h.z) {
                            var k = this.NI(f);
                            k && (f.Sb = k, f.status = "loaded", f.ya = !0, k.cj += 1, f.hn = (h.x - k.ta.x) / Math.pow(2, h.z), d.splice(c, 1), this.set("display", 0))
                        }
                        this.ra.set(f.key, f);
                        !b && f.Ae ? f.Ae = !1 : f.status = "loading"
                    }
                }
                var l = this;
                this.qI(a, function (a) {
                    for (var c = a.length - 1; 0 <= c; c -= 1) {
                        var d = a[c];
                        if (d.length) if (l.xi) {
                            if (l.e.Hz) break;
                            var e = d[0].ta.z;
                            l.Mv(d, l.uj ? 1 : 0);
                            for (var f = 0,
                                     h = 0; f < d.length;) l.xS(d.slice(50 * h, 50 * h + 50), e, b), f += 50, h += 1
                        } else for (e = function () {
                            var a = d.length;
                            return function () {
                                if (0 === --a) {
                                    var b = {key: "rb", index: 0, id: l.e.C.id};
                                    l.f.T.kk || (g.te.af.end(b), g.te.af.end(g.extend(b, {index: 1})))
                                }
                            }
                        }(), l.Mv(d), l.dq += d.length, f = d.length - 1; 0 <= f; f -= 1) l.sh(d[f], l.km, e)
                    }
                })
            }
        }, vy: function (a, b) {
            var c = this.ra.get(a + "");
            c || b || (c = new g.ob(a.lb()));
            return c
        }, EK: function (a, b) {
            return this.Ad * Math.pow(2, a - b)
        }, DA: function (a) {
            a.ns && this.km.M1(a.ns);
            a.qK = !1;
            a.loaded = !1;
            this.Sf && this.Sf(a)
        },
        Sx: function (a, b) {
            var c = (2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0) || this.bb, d = a.Jd.x,
                e = a.Jd.y, f = a.Zb.x, h = a.Zb.y;
            new g.G(0, 0);
            var k = this.EK(20, c);
            b && (f = Math.max(b[0], f) - b[0], h = Math.max(b[1], h) - b[1], d = Math.min(b[2], d) - b[0], e = Math.min(b[3], e) - b[1], new g.G(Math.floor(b[0] / k), Math.floor(b[1] / k)));
            d /= k;
            e /= k;
            d = {
                Dc: 0 === d % 1 ? d - 1 : Math.floor(d),
                qc: 0 === e % 1 ? e - 1 : Math.floor(e),
                Ec: Math.floor(f / k),
                dc: Math.floor(h / k)
            };
            d.WD = d.Dc - d.Ec + 1;
            d.dK = d.qc - d.dc + 1;
            d.z = c;
            d.S = this.S * Math.pow(2, this.zoom - c);
            d.xy = Math.ceil(d.WD /
                2);
            return d
        }, $u: function (a, b, c) {
            return b < a.Ec || b > a.Dc || c < a.dc || c > a.qc ? !1 : !0
        }, Mv: function (a, b) {
            if (a.length) {
                var c = this.jb.ed(this.Ad << 20 - a[0].ta.z), d = Math.floor(c.x), e = Math.floor(c.y);
                a.sort(function (a, c) {
                    var k = a.ta, l = c.ta, m = k.x - d, k = k.y - e, n = l.x - d, l = l.y - e;
                    return (b ? -1 : 1) * (n * n + l * l - (m * m + k * k))
                })
            }
        }, clear: function () {
            this.km.clear()
        }, To: function (a, b) {
            this.ng = !1;
            this.clear();
            this.Si = b.Si;
            this.Ri = b.Ri;
            this.Ad = b.Ad;
            var c = a.R;
            this.Bf = b.Bf || a.R.Bf;
            this.kh = c.kh;
            this.size = a.size;
            this.rotation = c.rotation;
            this.jb =
                c.jb;
            this.Ha = a.R.Ha;
            this.If = a.If;
            this.Pe = a.Pe;
            this.vg = a.vg;
            this.zoom = c.zoom;
            this.De = c.De;
            this.bb = !1 === this.xi && !this.f.RR && this.f.ja ? this.De + 1 : this.De;
            this.Ye && this.bb > this.Ye && (this.bb = this.Ye);
            this.Mo && this.bb < this.Mo && (this.bb = this.Mo);
            this.S = c.S;
            this.wg = c.wg;
            c = a.R.Ha;
            this.hk = this.Sx(c, b.I);
            this.nw = c.T9 ? this.Sx(c.T9, b.I) : null;
            var c = this.hk, d = this.Ha.J8, e = null, e = d < this.zoom && this.nw ? this.nw : c, f = [], h = [], k,
                l = [], m = [], n = [], p = new g.Uq(0, 0, 0), q, r = this.zoom, m = this.Dl || "", s = {}, u = {}, v,
                w, t, x, y, D;
            this.$d =
                1E6 * Math.random() << 0;
            for (q = m.length - 1; 0 <= q; q -= 1) if (k = m[q], !(k.Nw < b.opacity)) if (p.z = k.ta.z, p.x = k.ta.x, p.y = k.ta.y, p.z === this.bb) s[p + ""] |= 16; else if (p.z < this.bb) {
                if (s[p + ""] |= 64, this.Si) for (x = this.bb - p.z, v = Math.max(c.Ec, p.x << x), r = Math.min(c.Dc, (p.x + 1 << x) - 1), w = Math.max(c.dc, p.y << x), t = Math.min(c.qc, (p.y + 1 << x) - 1), p.z = this.bb, x = v; x <= r; x += 1) for (p.x = x, y = w; y <= t; y += 1) p.y = y, D = p + "", s[D] |= 32, u[D] = u[D] ? Math.max(k.ta.z, u[D]) : k.ta.z
            } else if (this.Ri) for (v = 1; p.z >= this.bb;) {
                s[p + ""] |= v;
                v = p.x >> 1;
                w = p.y >> 1;
                r = v << 1;
                t = w << 1;
                k = 0;
                for (x = 2; 0 < x; x -= 1) for (p.x = r + x, y = 2; 0 < y; y -= 1) p.y = t + y, s[p + ""] & 5 && (k += 1);
                p.z -= 1;
                p.x = v;
                p.y = w;
                v = 4 === k ? 4 : 2
            }
            m = [];
            p.z = this.bb;
            q = !0;
            this.ra.Z1();
            for (x = e.Ec; x <= e.Dc; x += 1) for (p.x = x, y = e.dc; y <= e.qc; y += 1) p.y = y, k = this.vy(p), this.Kt(k), v = !1, k.ya ? (k.$d = this.$d, this.$u(c, x, y) && (m.push(k), this.Ck && (k.bd !== this.bd || 1 > k.Nw) && (v = !0))) : (q = !1, this.$u(c, x, y) && (v = !0), k.status && !k.Ae || this.De !== d || this.nw && !this.$u(this.nw, x, y) || l.push(k)), v && n.push(k);
            q ? (this.JC || (this.JC = !0), this.f.Ka || (k = {
                key: this.f.Pg ? "rl" : "rb", index: 1,
                id: this.e.C.id
            }, this.f.T.kk || (g.te.af.end(k), g.te.af.push({
                key: "ftc",
                tf: m.length,
                id: this.e.C.id
            })))) : this.f.Ka = !1;
            this.ng = q;
            m.length && this.JC && (f.push(m), m.ng = q);
            h.push(l);
            d = !1;
            if (this.Ri) {
                n = n.slice(0);
                e = [];
                for (q = n.length - 1; 0 <= q; q -= 1) k = n[q], s[k.key] & 4 || e.push(k);
                k = b.hb[1];
                for (r = this.bb + 1; n.length && r <= k; r += 1) {
                    m = [];
                    l = n;
                    n = [];
                    p.z = r;
                    for (q = l.length - 1; 0 <= q; q -= 1) if (x = l[q], v = s[x.key], v & 7) for (v = x.ta.x << 1, w = x.ta.y << 1, x = 1; 0 <= x; x -= 1) for (p.x = v + x, y = 1; 0 <= y; y -= 1) p.y = w + y, D = p + "", t = this.ra.UJ(D), s[D] & 5 && t && t.ya ? (t.jB =
                        !0, t.$d = this.$d, m.push(t), this.Kt(t)) : n.push(new g.ob(p.lb()));
                    m.length && (d = !0, f.push(m))
                }
                n = e
            }
            if (!d && this.Si) for (x = !f.length || this.uj ? b.hb[0] : Math.max(b.hb[0], this.bb - 2), Math.max(x, this.bb - this.gga), r = this.bb - 1; n.length && r >= x; r -= 1) {
                m = [];
                y = {};
                l = n;
                n = [];
                for (q = l.length - 1; 0 <= q; q -= 1) k = l[q], p.z = r, p.x = k.ta.x >> 1, p.y = k.ta.y >> 1, k = this.vy(p), y[k.key] || (y[k.key] = 1, v = !1, k.ya && (!this.jia || s[k.key] & 64) ? (p.x = Math.min(c.Dc, Math.max(c.Ec, p.x << this.bb - r)), p.y = Math.min(c.qc, Math.max(c.dc, p.y << this.bb - r)), p.z = this.bb,
                    D = p + "", "number" === typeof u[D] && k.ta.z > u[D] ? v = !0 : k.jB = !0, k.$d = this.$d, m.push(k), this.Kt(k)) : v = !0, v && n.push(k));
                m.length && f.push(m)
            }
            this.DU = h;
            this.mv = this.dq = 0;
            this.vn(h);
            this.Zg = f;
            this.f.set("tiles", f);
            this.zv(a, b)
        }, Kt: function (a) {
            this.ra.H5(a.wEa)
        }, lR: function (a, b) {
            for (var c = [], d = this.e.C.getCoordsBoundByZoom(a), d = this.Sx(d, b, a), e = d.Ec; e < d.Dc; e++) for (var f = d.dc; f < d.qc; f++) {
                var h = [a, e, f].join("/");
                this.ra.Hd(h) || c.push(new g.ob(new g.Uq(a, e, f), !0))
            }
            return c
        }, nM: function () {
            var a = this.e.C;
            return a.c7 &&
                a.get("preloadMode") && 200 <= this.ra.rp && this.f.T.ev() && "stable" != this.If && this.Cx && this.Cx() && this.zoom !== this.bb
        }, zv: function (a, b) {
            var c = b.I, d = b.hb;
            if (this.nM() && this.bb >= d[0] + 1) {
                var d = [], e = null, e = "zoomOut" === this.If ? Math.floor(this.zoom) : Math.ceil(this.zoom),
                    e = this.lR(e, c);
                e.length && d.push(e);
                d.length && this.vn(d, !0)
            }
        }
    });
    g.M.Yd.Mi = g.M.Mi.extend({
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.On = 120;
            this.xi = !1;
            this.Mg();
            this.Ye = a.Ye;
            this.Mo = a.Mo
        }, oj: function () {
            return this.Lb
        }, Mg: function () {
            this.Lb = document.createElement("div");
            this.Lb.className = this.f.T.get("className") || "amap-layer";
            this.Ju = document.createDocumentFragment()
        }, Ev: function (a) {
            var b = Math.pow(2, a.R.zoom - this.qf), c = a.R.jb.$a(this.os).ed(this.qm);
            this.transform = {translate: this.transform.translate.add(c), scale: b, rotate: 0};
            this.jb = a.R.jb
        },
        oP: function (a, b) {
            this.La = this.J.La;
            this.qf = this.De;
            this.qm = this.wg;
            this.ne = !1;
            this.currentTime = +new Date;
            this.cV = b.cV;
            var c = this.hk;
            this.Ck = this.On && b.FH;
            var d = this.Zg, e = 256 * c.WD, c = 256 * c.dK;
            this.Pe = this.zoom << 0 !== this.zoom;
            var f = this.jb.$a(this.La);
            f.x < -g.a.Ea / 2 ? f.x += g.a.Ea : f.x > g.a.Ea / 2 && (f.x -= g.a.Ea);
            this.EP = f.ed(this.wg);
            return [d, e, c, b]
        }, kz: function (a, b) {
            var c = this.oP(a, b);
            this.Ls.apply(this, c);
            this.Fe(a);
            this.ng && !this.f.Ka && (c = this.f, c.T.kk || g.te.af.end({key: "rb", index: 2, id: this.e.C.id}), c.Ka =
                !0, c.Gd ? c.oa("renderComplete") : (c.Gd = !0, c.oa("complete")))
        }, mc: function (a, b) {
            this.Tq = a.Tq;
            this.vg = a.vg;
            this.To(a, b);
            this.os && g.l.Ql && (a.Pe || a.vg) ? this.Ev(a, b) : this.kz(a, b);
            this.os = this.jb;
            this.ne && this.set("display", 0)
        }, Dv: function () {
            for (var a = this.Lb.childNodes, b = a.length - 1; 0 <= b; b -= 1) a[b] && a[b].bd !== this.bd && this.Lb.removeChild(a[b])
        }, VD: function (a, b) {
            return a.dc === b.dc && a.Ec === b.Ec && a.qc === b.qc && a.Dc === b.Dc
        }, Ls: function (a) {
            var b = this.bd;
            this.bd += 1;
            var c = !1, d, e, f;
            e = !1;
            var h = [], k, l;
            for (d = a.length -
                1; 0 <= d; d -= 1) if (f = a[d], f.length) {
                e = f[0].ta.z;
                var m, n, p = this.EK(this.De, e), q = !1;
                this.sn && f.ng && f[0].ta.z == this.bb && (k = [], l = [], q = !0);
                for (var r = f.length - 1; 0 <= r; r -= 1) {
                    n = f[r];
                    q && n.ea && (k.push.apply(k, n.ea), l.push(n.ta + ""));
                    this.MT(n);
                    if (this.La === n.La && n.qf === this.qf) {
                        var s = n.Me;
                        if (s && s.parentNode === this.Lb && 1 === n.Nw) {
                            h.push(n);
                            s.bd = this.bd;
                            n.bd = this.bd;
                            continue
                        }
                    }
                    n.La = this.La;
                    n.qf = this.qf;
                    m = n.ta;
                    var c = !0, u = (new g.G((m.x << 20 - e) * this.Ad, (m.y << 20 - e) * this.Ad)).$a(this.La),
                        u = u.ed(this.wg);
                    u.x = g.a.hc(u.x, 1);
                    u.y = g.a.hc(u.y, 1);
                    var v = 1;
                    if (!n.KX || this.PW && n.bd !== b) n.KX = this.currentTime;
                    this.Ck && !n.jB ? (s = Math.max(0, Math.abs(m.z - this.zoom) - 1), v = Math.min(1, (this.currentTime - n.KX) / (1 / Math.pow(1.32, s) * this.On)), 1 !== v && (this.ne = !0)) : n.jB = !1;
                    n.bd = this.bd;
                    n.Nw = v;
                    n.ya ? (s = n.Me, !s && n.Sb && n.Sb.Me && (s = n.Sb.Me), 0 !== v && s && (this.B3(s, u.x, u.y, p, p, v, m.z), s.parentNode !== this.Lb && (g.l.ti && "overlayer" === this.f.get("type") && (s.style.display = "none"), this.Ju.appendChild(s)), s.bd = this.bd, n.De = this.De, h.push(n))) : n.$d = null
                }
                e = !0
            }
            this.sn &&
            k && (r = l.sort().join(";"), k.lS = r, r !== this.Uf.lS && (this.Uf = k));
            1 < a.length && (this.ne = !0);
            this.Dl = h;
            this.Dv();
            this.Lb.appendChild(this.Ju);
            return c || !e
        }, MT: function () {
        }, Fe: function () {
            this.transform = {translate: this.EP, scale: Math.pow(2, this.zoom - this.De), rotate: 0}
        }
    });
    window.CanvasRenderingContext2D && (window.CanvasRenderingContext2D.prototype.bQ = function (a, b, c, d, e) {
        "undefined" === typeof e && (e = [10, 10]);
        this.moveTo(a, b);
        var f = c - a, h = d - b, k = Math.floor(Math.sqrt(f * f + h * h));
        d = f / k;
        c = h / k;
        e.ug = 0;
        for (var l = [], f = this.XH, m = 0, n = 0, p = !1, q = h = 0; q < e.length; q += 1) e.ug += e[q], l[q] = {
            FC: e[q] * d,
            GC: e[q] * c,
            Jy: h += e[q]
        }, f -= e[q], 0 > f && !p && (m = q, n = -f, p = !0);
        for (p = 0; n + p <= k;) n < e[m] ? (f = n * d, h = n * c) : (f = l[m].FC, h = l[m].GC), a += f, b += h, this.mE ? this.moveTo(a, b) : this.lineTo(a, b), p += n, this.mE = !this.mE, n = e[(m + 1) %
        e.length], m = (m + 1) % e.length;
        k -= p;
        a += k * d;
        b += k * c;
        this.mE ? this.moveTo(a, b) : this.lineTo(a, b);
        this.XH = (this.XH + p + k) % e.ug
    }, window.CanvasRenderingContext2D.prototype.Bna = function (a, b, c, d) {
        "undefined" === typeof d && (d = [10, 10]);
        var e = 2 * Math.PI * c, f = 0 >= d ? e : Math.round(e / (d[0] + d[1])), h = (d[0] + d[1]) / e * 2 * Math.PI;
        d = d[0] / e * 2 * Math.PI;
        for (e = 0; e < f; e += 1) this.beginPath(), this.arc(a, b, c, e * h, e * h + d), this.stroke()
    });
    g.M.Ce.zl = g.M.Mi.extend({
        r: function (a, b) {
            arguments.callee.la.apply(this, arguments);
            this.Mg()
        }, pR: function () {
            return this.Ya.tU
        }, oj: function () {
            return this.Lb
        }, Mg: function () {
            this.Lb = document.createElement("div");
            this.Lb.className = "amap-markers";
            this.Ya = new g.M.Ce.ad(this.Lb);
            this.Ya.f = this.f;
            this.J.K.appendChild(this.Lb)
        }, et: function (a, b) {
            this.Ju = b.Ju;
            this.My = b;
            this.Bf = a.R.Bf;
            this.S = a.R.S;
            this.zoom = a.R.zoom;
            this.size = a.size;
            this.Ha = a.R.Ha;
            this.gq = a.S;
            this.kb = a.R.jb;
            this.kh = a.R.kh;
            var c = !1;
            if (!this.La ||
                500 < Math.abs(this.kb.x - this.La.x) / this.S || 500 < Math.abs(this.kb.y - this.La.y) / this.S) c = !0;
            if (c || this.zoom << 0 !== this.zoom || this.qf !== this.zoom) this.La = this.kb, this.qf = this.zoom
        }, Su: function (a) {
            var b = a.R.Ha.xc.y * this.S;
            a = a.R.Ha.xc.x * this.S;
            return [this.kb.x - a, this.kb.y - b, this.kb.x + a, this.kb.y + b]
        }, Dv: function () {
            if (this.Ph && this.Ph) for (var a in this.Ph) if (this.Ph.hasOwnProperty(a)) {
                var b = this.Ph[a];
                b.$d !== this.$d && b.ca && this.J.Fl.appendChild(b.ca)
            }
        }, mc: function (a, b) {
            this.$d = 1E6 * Math.random() << 0;
            this.et(a,
                b);
            this.R = a.R;
            this.size = a.size;
            var c = this.f;
            this.Ad = 256;
            var d, e;
            e = this.Su(a);
            var f = 0;
            c.gm && (f = 50 * this.S);
            e[0] -= this.f.of * this.S + f;
            e[1] -= this.f.cg * this.S + f;
            e[2] += this.f.of * this.S + f;
            e[3] += this.f.cg * this.S + f;
            c = c.mn(e);
            for (d in c) c.hasOwnProperty(d) && (c[d].$d = this.$d, c[d].t5 = this);
            this.Dv(c);
            this.et.call(this.Ya, a, b);
            this.Ya.bE(c);
            this.Ph = c;
            this.Fe(a)
        }, Fe: function () {
            var a = Math.pow(2, this.zoom - this.De);
            this.transform = {translate: this.La.$a(this.kb).ed(this.S), scale: a, rotate: 0}
        }
    });
    g.M.Ce.ad = g.aa.extend({
        r: function (a) {
            this.fl = a
        }, bE: function (a, b) {
            var c = document.createDocumentFragment(), d = b && b.cS ? null : {}, e = !0, f;
            for (f in a) if (a.hasOwnProperty(f)) {
                var h = a[f], k, l = h.get("params");
                if (h.ca) k = h.ca; else {
                    k = g.j.create("div");
                    k.className = "amap-marker";
                    var m = l.Ig, n = l.h8, p = l.mJ;
                    m && k.appendChild(m);
                    n && k.appendChild(n);
                    p && !1 !== m.$L && k.appendChild(p);
                    h.ca = k;
                    h.Ig = m;
                    if (n = l.title) m.title = n;
                    this.f.gm = !0;
                    -1 === g.a.indexOf(this.f.Sg, h) && this.f.Sg.push(h);
                    h.ge = !0
                }
                var p = l.offset, q = p.x, r = p.y, s = l.textAlign,
                    u = l.verticalAlign, n = l.anchor, m = !1, v, w;
                n && (n = n.split("-"), 2 === n.length ? (s = n[1], u = n[0]) : 1 === n.length && "center" === n[0] && (s = "center", u = "middle"));
                var t, n = t = 0;
                if ("AMap.Text" == h.Cp || "AMap.Marker" == h.Cp) {
                    if (w = v = 0, k.parentNode !== this.fl && d && (m = !0, d[f] = h, e = !1), !m) {
                        h.ge || !h.Qj ? (t = g.j.wo(h.Ig), h.Qj = t) : t = h.Qj;
                        n = t[0];
                        t = t[1];
                        switch (s) {
                            case "center":
                                v = n / 2;
                                break;
                            case "right":
                                v = n
                        }
                        switch (u) {
                            case "middle":
                                w = t / 2;
                                break;
                            case "bottom":
                                w = t
                        }
                        q -= v;
                        r -= w
                    }
                } else v = -q, w = -r;
                var x, y;
                if (!m) if (h.ge) {
                    var D = [];
                    x = this.su(h.fa.wa);
                    h.La =
                        this.La;
                    y = l.UE;
                    r = Math.round(x[1] + r + y.y);
                    q = Math.round(x[0] + q + y.x);
                    D.push("top:" + r + "px");
                    D.push("left:" + q + "px");
                    D.push("z-index:" + (l.f5 ? this.f.Iq + 10 : l.zIndex));
                    if (!g.l.ye) {
                        r = v;
                        q = w;
                        if ("AMap.Marker" == h.Cp) {
                            r = -p.x;
                            q = -p.y;
                            switch (s) {
                                case "center":
                                    r = -p.x + n / 2;
                                    q = -p.y + t / 2;
                                    break;
                                case "right":
                                    r = -p.x + n
                            }
                            switch (u) {
                                case "middle":
                                    q = -p.y + t / 2;
                                    break;
                                case "bottom":
                                    q = -p.y + t
                            }
                        }
                        D.push(g.j.S3(k, l.Ap, {x: r, y: q}))
                    }
                    D.push("display:" + (l.visible ? "block" : "none") + ";");
                    k.style.cssText = D.join(";");
                    if ((p = l.label) && p.content) {
                        l = l.mJ;
                        s =
                            p.direction;
                        r = null;
                        h.jv || (r = g.j.wo(l), h.jv = r);
                        u = (r = h.jv) && r[0];
                        w = r && r[1];
                        q = r = 0;
                        if (s && u && w) switch (s) {
                            case "top":
                                r = -w;
                                q = (n - u) / 2;
                                break;
                            case "right":
                                r = (t - w) / 2;
                                q = n;
                                break;
                            case "bottom":
                                r = t;
                                q = (n - u) / 2;
                                break;
                            case "left":
                                r = (t - w) / 2;
                                q = -u;
                                break;
                            case "center":
                                r = (t - w) / 2, q = (n - u) / 2
                        }
                        p.offset ? (r = r + p.offset.y + "px", q = q + p.offset.x + "px") : (r += "px", q += "px");
                        l.style.top = r;
                        l.style.left = q
                    }
                } else if (h.iaa || this.zoom << 0 !== this.zoom || h.zoom !== this.zoom || k.parentNode !== this.fl || h.La !== this.La) x = this.su(h.fa.wa), h.La = this.La, y = l.UE,
                    r = Math.round(x[1] + r + y.y), q = Math.round(x[0] + q + y.x), k.style.top = r + "px", k.style.left = q + "px";
                h.zoom = this.zoom;
                k.parentNode !== this.fl && (g.l.ti && g.a.iepngFix(k), c.appendChild(k));
                h.ge = m;
                k.nB = this.fl
            }
            this.fl.appendChild(c);
            e || this.bE(d, {cS: !0})
        }, su: function (a) {
            var b = a[0] - this.La.x;
            b > g.a.Ea / 2 ? b -= g.a.Ea : b < -g.a.Ea / 2 && (b += g.a.Ea);
            return [b / this.S, (a[1] - this.La.y) / this.S]
        }
    });
    var Kc = g.A, Sc = g.l, ec = g.aa.zu, Tc = g.Hua, fa = document, Uc = !0, Vc = [];
    Sc.Ff && Vc.push("touch");
    Sc.ba || Vc.push("mouse");
    Sc.HK && (Vc.push("vectorlayer", "overlay"), Sc.Eq ? Vc.push("wgl") : Vc.push("cgl"));
    if (Tc) {
        for (var Wc = [], Xc = Tc.split(","), xc = 0; xc < Xc.length; xc += 1) {
            var Yc = Xc[xc];
            ec[Yc] && Wc.push.apply(Wc, ec[Yc]);
            Wc.push(Yc)
        }
        Vc = Vc.concat(Wc)
    }
    Vc.push("sync");
    if (Sc.ss) {
        var Zc = !0, $c = [], ad = [];
        try {
            for (var xc = 0, bd = Vc.length; xc < bd; xc++) {
                var cd = JSON.parse(localStorage.getItem("_AMap_" + Vc[xc]));
                if (cd && cd.version === Kc.Cj) $c.push(cd.script), cd.css && ad.push(cd.css); else {
                    $c = void 0;
                    Zc = !1;
                    break
                }
            }
        } catch (dd) {
            $c = ad = void 0, Zc = !1
        }
        if (Zc) try {
            ad.length && ed();
            var fd = $c.join(";");
            eval(fd)
        } catch (gd) {
            Uc = !1
        } else Uc = !1
    } else Uc = !1;
    if (Uc) for (xc = 0; xc < Vc.length; xc += 1) g.qb.tC(Vc[xc]).status = 1; else Kc.qD = !1, hd();

    function id() {
        for (var a = fa.getElementsByTagName("script"), b, c = 0; c < a.length; c += 1) if (0 === a[c].src.indexOf(Kc.yb + "/maps?")) {
            b = a[c];
            break
        }
        return Kc.Jc || b && b.async
    }

    function hd() {
        var a = Kc.yb + "/maps?v=" + Kc.ur + "&key=" + Kc.key + "&vrs=" + Kc.Cj + "&m=" + Vc.join(",");
        id() ? jd(a) : (fa.write('<script crossorigin="anonymous" id="amap_plus_js" src="' + a + '" type="text/javascript">\x3c/script>'), setTimeout(function () {
            fa.getElementById("amap_plus_js") || jd(a)
        }, 1))
    }

    function jd(a) {
        var b = fa.createElement("script");
        b.charset = "utf-8";
        b.src = a;
        b.id = "amap_plus_js";
        (a = fa.head || fa.getElementsByTagName("head")[0] || fa.body) && a.appendChild(b)
    }

    function ed() {
        var a = ad.join("\n"), b = fa.createElement("style");
        b.type = "text/css";
        -1 === Kc.yb.indexOf("webapi.amap.com") && (a = a.replace(/webapi.amap.com/gi, Kc.yb.split("://")[1]));
        "https" === Kc.Fc && (a = a.replace(/http:/gi, "https:"));
        if (b.styleSheet) {
            var c = function () {
                try {
                    b.styleSheet.cssText = a
                } catch (c) {
                }
            };
            b.styleSheet.disabled ? setTimeout(c, 10) : c()
        } else b.appendChild(fa.createTextNode(a));
        c = fa.head || fa.getElementsByTagName("head")[0];
        2 > c.childNodes.length ? c.appendChild(b) : c.insertBefore(b, c.childNodes[1])
    }
})(["a246207e773195cdb7599502857d1458", [120.856804, 30.675593, 122.247149, 31.872716, 121.472644, 31.231706], "https://webapi.amap.com", 1, "1.4.15", null, "310000", "", true, false, true, true, "1562073668-1", false]);
